--- id: 5a24c314108439a4d403618d title: Render React on the Server with renderToString challengeType: 6 isRequired: false videoUrl: '' localeTitle: Renderizar Reagir no Servidor com renderToString --- ## Description
Até agora, você está processando componentes React no cliente. Normalmente, isso é o que você sempre fará. No entanto, existem alguns casos de uso em que faz sentido processar um componente React no servidor. Como o React é uma biblioteca de visualização do JavaScript e você pode executar o JavaScript no servidor com o Node, isso é possível. Na verdade, o React fornece um método renderToString() que você pode usar para essa finalidade. Existem dois motivos principais pelos quais a renderização no servidor pode ser usada em um aplicativo do mundo real. Primeiro, sem fazer isso, seus aplicativos React consistiriam em um arquivo HTML relativamente vazio e um grande pacote de JavaScript quando inicialmente carregado no navegador. Isso pode não ser ideal para mecanismos de pesquisa que tentam indexar o conteúdo de suas páginas para que as pessoas possam localizá-lo. Se você renderizar a marcação HTML inicial no servidor e enviá-la ao cliente, o carregamento inicial da página conterá toda a marcação da página, que pode ser rastreada pelos mecanismos de pesquisa. Segundo, isso cria uma experiência de carregamento de página inicial mais rápida porque o HTML renderizado é menor que o código JavaScript de todo o aplicativo. O React ainda poderá reconhecer seu aplicativo e gerenciá-lo após o carregamento inicial.
## Instructions
O método ReactDOMServer renderToString() é fornecido no ReactDOMServer , que está disponível aqui como um objeto global. O método usa um argumento que é um elemento React. Use isso para renderizar o App em uma string.
## Tests
```yml tests: - text: O componente App deve renderizar uma string usando ReactDOMServer.renderToString . testString: 'getUserInput => assert(getUserInput("index").replace(/ /g,"").includes("ReactDOMServer.renderToString()") && Enzyme.mount(React.createElement(App)).children().name() === "div", "The App component should render to a string using ReactDOMServer.renderToString.");' ```
## Challenge Seed
```jsx class App extends React.Component { constructor(props) { super(props); } render() { return
} }; // change code below this line ```
### Before Test
```jsx var ReactDOMServer = { renderToString(x) { return null; } }; ```
### After Test
```js console.info('after the test'); ```
## Solution
```js // solution required ```