O react.js faz sentido para um site estático controlado por conteúdo?


14

Sou bastante vendido no modelo react.js porque torna a manipulação do DOM tão suave e compreensível. Mas estou me perguntando como isso poderia ser aproveitado para um site em grande parte estático, com grandes blocos de texto e imagens que não se movem. Isso apenas atrapalharia? Parece estranho ter componentes com KBs de texto em seu estado.


4
Você tem um martelo e está pensando se esse parafuso pode ser usado como um prego. Normalmente, as decisões relacionadas à tecnologia devem ser tomadas da mesma forma: "Nossos requisitos são X, Y, Z. Quais tecnologias nos permitirão chegar lá pelo menor custo?", Não "Eu tenho a solução, mas você poderia fornecer me um problema? ”. O fato de você já ter experiência com o React inclina a decisão um pouco a seu favor, mas que requisitos seriam atendidos por ela? Que valor acrescentaria ao cliente ou usuário?
amon

4
Bem, é isso que estou tentando determinar. O React é um martelo ou uma caixa de ferramentas? Certamente se destaca no tipo de casos de uso que o Facebook tem e não vi nada que indique que isso seria péssimo em outros casos. Definitivamente, é menos atraente, mas isso não significa que não esteja perfeitamente bem.
Jiggy

1
Na verdade, tenho as mesmas perguntas. Eu amo tudo sobre os componentes React, mas para sites orientados a conteúdo com apenas algumas linhas de javascript, parece muito focado no acoplamento HTML-JS e mais em estados e eventos do que HTML-CSS limpo. Eu adoraria algo como componentes React em outra linguagem de modelos.
JeroenVdb

Respostas:


10

Saiba o que você quer fazer e escolha a tecnologia.

Desse ponto de vista, o React.js parece ser um exagero para uma Web principalmente estática.

No site da React:

Criamos o React para resolver um problema: criar aplicativos grandes com dados que mudam com o tempo.

React é um martelo para uma unha específica. Isso indicaria que seria um obstáculo à criação de um site estático.


2

A geração de páginas estáticas é um uso antecipado do React, conforme mencionado na documentação para React.renderToStaticMarkup

Semelhante renderToString, exceto que isso não cria atributos DOM adicionais, como data-react-id, que o React usa internamente. Isso é útil se você deseja usar o React como um simples gerador de páginas estáticas, pois remover os atributos extras pode economizar muitos bytes.

Alguns têm denominado o uso de reagir aqui um exagero. No entanto, quando quero algo morto, não tenho problema em exagerar. O fato de que reagir pode fazer muito mais do que o necessário para este caso de uso não é argumento contra reagir.

No entanto, podem surgir problemas se você desejar executar código assíncrono. Vamos imaginar o seguinte:

function SchoolClass({classId}) {
   const students = await query("SELECT name FROM student WHERE class = ?", classId);
   return <ul>
      {_.map(students, ({name}) => <li>{name}</li>}
   </ul>
}

Mas isso não funcionará, porque a função retorna um elemento Promise, não React e, portanto, não é compatível com React. Se você estivesse criando uma estrutura de gerador de site estático no estilo React, provavelmente permitiria isso. No entanto, como o React é focado em clientes de aplicativos da web, isso não é permitido.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.