2

在初始化反应应用程序之前是否有任何理由等待窗口加载事件?

window.addEventListener('load', () => {
   ReactDOM.render(
     <h1>Reactastic!</h1>,
     document.getElementById('rootElement')
   );
}, false);

只要rootElement是在html中定义的,不是被javascript隐藏或动态创建的,是否有可能无法及时被React初始化?

编辑:这也假设在页脚中加载了 javascript。

4

2 回答 2

1

ReactDom 渲染器会将所有内容安装在容器元素中,因此,react 唯一需要(*)是渲染调用时现有的“根”元素。鉴于您的假设,这是正确的,因此在这种情况下您不需要等待 onload() 。

(*)当然,在 render() 侵入性地操作“根”元素内的 dom 之后评估的任何脚本都可以(并且可能会)破坏反应逻辑......

于 2017-10-04T13:10:45.547 回答
1

假设 javascript 在页面底部加载,没有理由等待文档加载,因为rootElementDOM 中已经存在该文档。

于 2017-10-04T12:36:06.020 回答