你怎么能检测到你的React应用程序已经呈现在服务器上?

我想确定一个组件是否构build了我的React应用程序来与校验和进行比较或正常渲染。 有没有办法让一个组件在初始“校验和”渲染上的行为稍有不同?

具体来说,我有一个使用canvas的组件,这是服务器无法做到的。 所以在服务器上,我希望它只是呈现一个空的元素,然后在客户端上,匹配校验和,随后更新。

或者,在这样的情况下,让React取代服务器使用新元素渲染的元素会更好吗?

为了检查环境,我使用了一个简单的帮助函数:

isBrowser = () => typeof window !== 'undefined' && window.document !== undefined; 

这是有效的,因为windowwindow.document是浏览器特有的对象。 使用这个助手你可以有特定于浏览器/服务器的行为。