1

我有一个简单的 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 渲染时不包含 reactdata-reactroot或任何其他痕迹?

4

2 回答 2

2

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

于 2018-02-23T23:47:11.963 回答
0

你在使用 React 16 吗?一旦你使用了那个版本,任何生成的 React 属性都不应该存在

于 2018-02-23T23:49:52.107 回答