Node/react 如何 return 纯 html 渲染并发送给客户端

Node/react how to return pure html rendered with react and send to client

我有一个简单的 node.js 应用程序,它应该使用 React 的 renderToString 函数以纯 HTML 响应请求。渲染和响应的代码如下所示:

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>

我不希望输出中有任何反应痕迹。有没有办法在使用 React 渲染时不包含 data-reactroot 或任何其他 React 痕迹?

只需使用 renderToStaticMarkup 而不是 renderToString,输出中不会有任何反应痕迹(参考 https://reactjs.org/docs/react-dom-server.html#rendertostaticmarkup

你在使用 React 16 吗?使用该版本后,none of the generated React attributes should be present.