Open wuzhuzhu opened 6 years ago
使用next.js等框架时,使用服务端渲染特性。项目是移动端网页。按照之前其他的react项目经验,我们会选用adaptive.js和postcss-px2rem去做高清适配,以直接按照设计稿的px值在css中还原。 由于服务端无法直接获取window(即设备的width,dpr,of course),服务端渲染出来的html与客户端渲染出来的样式,root font-size将有很大出入,导致界面跳动剧烈。
已经尝试过而失败的思路:
在node server端通过user-agent取得设备dpr: 找不到合适的方式 适配所有的物理设备型号 =》 dpr,width 使 用http-client-hints: 草案未被广泛支持
Node server like koa2 || express can't get client device info(sure), it will cause rendered dom different from client side, make html flash. tried: get client info by user-agent: there's no lib for all device mapping http-client-hints: just a draft.
给html body 初始化的时候设置font-size:12px,就不会剧烈抖动了
恩 readme中是有提到的... 也就是说没有完美解决方案吗?
测试了下<body style={{fontSize: '12px'}}> dpr不是1的时候 貌似跳动非常剧烈...
使用next.js等框架时,使用服务端渲染特性。项目是移动端网页。按照之前其他的react项目经验,我们会选用adaptive.js和postcss-px2rem去做高清适配,以直接按照设计稿的px值在css中还原。 由于服务端无法直接获取window(即设备的width,dpr,of course),服务端渲染出来的html与客户端渲染出来的样式,root font-size将有很大出入,导致界面跳动剧烈。
已经尝试过而失败的思路:
在node server端通过user-agent取得设备dpr: 找不到合适的方式 适配所有的物理设备型号 =》 dpr,width 使 用http-client-hints: 草案未被广泛支持
Node server like koa2 || express can't get client device info(sure), it will cause rendered dom different from client side, make html flash. tried: get client info by user-agent: there's no lib for all device mapping http-client-hints: just a draft.