是React合成的`window`对象吗?

Arc*_*ano 6 reactjs

我想知道window传入反应组件的对象是否是合成的.

如果不是我假设我需要以下代码来确定视口的宽度和高度

const w = window,
  d = document,
  documentElement = d.documentElement,
  body = d.getElementsByTagName('body')[0],
  width = w.innerWidth || documentElement.clientWidth || body.clientWidth,
  height = w.innerHeight || documentElement.clientHeight || body.clientHeight
Run Code Online (Sandbox Code Playgroud)

Rap*_*nah 14

window对象是普通的DOM对象.

问题是它仅在组件安装后才可用.

__PRE__

https://facebook.github.io/react/docs/react-component.html#componentdidmount

更新:

如果DOM在React之前加载,则该window对象可用window.只要您没有在文档中加载React window,我认为它可以正常使用window.

因为添加不安全的这个 ,你应该使用window,而不是在未来的版本...

注意:即将呈现的实际组件将不存在,但window可能存在.


Jim*_*ris 7

在 React 中访问 window 对象与其他地方一样。它存在于任何 JavaScript 运行之前。作为测试,在地址栏中输入 about:blank,打开控制台并输入“window”。即使页面上没有其他 JavaScript,它也存在。