做服务器端渲染时(所谓的Universal JvaScript),共享部分的代码会同时在服务器端(NodeJS)和客户端跑。

在某些情况下不可避免的将会操作到window等对象,然而window对象是属于客户端才有的全局对象。因此在渲染时就会出现

window is not defined

之类的错误导致服务器端渲染出错。

解决的方法也很简单,

1
2
3
if (typeof window !== 'undefined') {
// 在这里包含需要用到window对象的第三方库等操作
}