nextjs version: 14.1.0
当我在服务端页面使用 client component 组件时,发现一个问题就是,页面已经渲染出来,但 client component 无法及时处理对应的事件(例如 click ,change 等),需要等一会才可以
问了一下 gpt ,好像是因为有一个 "水合" 的现象,用 useState + useEffect + 骨架屏解决了这个问题,类似于
const [isHydrated, setIsHydrated] = useState(false)
useEffect(() => {
setIsHydrated(true)
}, [])
if(!isHydrated) {
return 骨架屏
}
return 真正的视图
两个疑问:
1
stimw 319 天前 via Android
这是 page router 还是 app router
|
3
nddcc 317 天前
nextjs 14 dev 环境下确实很慢,性能有些问题,看了官网 issue 还是 open 状态。不过打包后就非常快了。
1 、用 nextjs 全部用 use client 都可以,服务端渲染会加快首屏加载速度,还自带 api handler ,所以当 spa 来写也是有优势的 2 、Skeleton 我也是写死高度 |