我正在使用Node.jsReactJS构建同构应用。

我遇到了一种情况,即在某些同构的React组件(在客户端和服务器端均呈现)内部,我只需要包括客户端依赖项(例如某些通知库)。

使它在服务器/客户端上都能正常工作(编译)的最佳方法是什么?

附注:我对可能的解决方法几乎没有想法,例如检查浏览器环境变量(例如某些typeof window !== 'undefined')等,但我不确定这是一个好方法。

最佳答案

使用不在服务器上调用的生命周期方法componentDidMount,而不是检查window是否未定义。

“缺点”是,如果您的客户端依赖项增强了元素或更改了它的任何属性,则它将首先获得默认属性,因为它是在服务器端呈现的;当componentDidMount运行时,它将被更改,从而导致“眨”。

关于node.js - 应对同构不便,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34863086/

10-11 22:12