我正在使用Node.js
和ReactJS
构建同构应用。
我遇到了一种情况,即在某些同构的React
组件(在客户端和服务器端均呈现)内部,我只需要包括客户端依赖项(例如某些通知库)。
使它在服务器/客户端上都能正常工作(编译)的最佳方法是什么?
附注:我对可能的解决方法几乎没有想法,例如检查浏览器环境变量(例如某些typeof window !== 'undefined'
)等,但我不确定这是一个好方法。
最佳答案
使用不在服务器上调用的生命周期方法componentDidMount
,而不是检查window是否未定义。
“缺点”是,如果您的客户端依赖项增强了元素或更改了它的任何属性,则它将首先获得默认属性,因为它是在服务器端呈现的;当componentDidMount
运行时,它将被更改,从而导致“眨”。
关于node.js - 应对同构不便,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34863086/