如何区分getInitialProps是在服务端环境调用的还是在客户端环境调用的呢?

来源:3-13 nextjs服务端渲染流程深度解析

Shawn_De

2019-04-27

举一个例子:
pages目录有下user.jsx文件暴露了一个Component User
在User里面需要获取数据name和age

在服务端环境下只要读取Redis存储的数据就OK了
在客户端环境下无法读取Redis的数据,所以需要通过Ajax访问服务端的接口

那么,期望的结果如下(伪代码):

getInitialProps = async () => {
	// 如果是服务端环境
	let { name, age } = await getDataByRedis()
	// 如果是客户端环境
	let { name, age } = await fetchData()
}

所以,是否有API能够让我们在getInitialProps方法中判定当前是服务端环境还是客户端环境呢?

写回答

1回答

Jokcy

2019-04-27

typeof window === 'undefined'简单来说就是判断一下是否有window全局对象。

1
1
Shawn_De
非常感谢Jokcy老师!
2019-04-27
共1条回复

全栈进阶课程 React16.8+Next.js+Koa2一步到位开发Github

学习React/Next.js服务端渲染SSR同构设计方案,理解OAuth登录体系的实现原理

651 学习 · 311 问题

查看课程