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.