如果我通过id直接在文档正文中插入React组件可以吗?
还是最好将其包装在DIV中?
index.js
ReactDOM.render(
<Provider store={store()}>
<App/>
</Provider>,
document.querySelector("#root")
)
index.html
<body class="d-flex flex-column h-100" id="root">
<noscript>You need to enable JavaScript to run this app.</noscript>
</body>
答案 0 :(得分:2)
出于以下三个原因,我不建议使用body
作为虚拟DOM的根:
body
通常包含脚本标签,其中可能包含您的React逻辑。重新渲染body
意味着您还需要照顾好所有脚本,并且每次重新渲染body
时,都需要重新加载所有脚本,这效率不高,更不用说了重新加载React代码的副作用(我没有任何经验可以证明)。避免这种情况的唯一方法是将所有脚本放入header
,which is not recommended中。 body
,例如如果使用Bootstrap modal,则添加“ modal-open”类,还有其他解决方案,例如using React's hook或专用于更新主体的事件监听器。答案 1 :(得分:0)
在我的html页面中,我只使用一个<div id="root">
之后:
ReactDOM.render(element, document.getElementById('root'));
做所有的魔术。