Узел / реагировать, как вернуть чистый html-файл, отображаемый с реагировать и отправить клиенту
У меня есть простое приложение node.js, которое должно отвечать на запросы с помощью чистого HTML с помощью React's renderToString
функция. Код для рендеринга и ответа выглядит следующим образом:
const markup = renderToString(
<Provider {...stores}>
<Router location={req.url} context={{}} history={browserHistory}>
<Routes/>
</Router>
</Provider>
);
res.status(200).send(markup);
И ответ HTML:
<section data-reactroot="">
<h1>Header</h1>
<div>Body</div>
</section>
Я не хочу никаких следов реакции на выходе. Есть ли способ, когда рендеринг с реагировать, чтобы не включать data-reactroot
или какие-то другие следы реагируют?
2 ответа
Решение
Просто используйте renderToStaticMarkup
вместо renderToString
и не будет никакого следа реакции в выходных данных (ссылка https://reactjs.org/docs/react-dom-server.html)
Вы используете React 16? Как только вы используете эту версию, ни один из сгенерированных атрибутов React не должен присутствовать.