suanmei / callapp-lib

🔥call app from h5(H5唤起客户端 )

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

服务端渲染支持

seekcx opened this issue · comments

commented
  • 版本号: callapp-lib@3.1.3

  • 遇到的问题及复现步骤:

在 next 中直接使用会报错,问题出在 browser.ts 的 navigator 上,是否考虑可以写成懒访问的方式,来避免服务端上直接报错。

  • 期望的效果:

支持服务端渲染。

先加个判断吧,只有客户端才加载这个模块,我用的nuxt,也有这个问题

几种解决办法:

  1. 实现一个区分客户端服务端的变量,在服务端场景下,不做实例化。因为服务端不做实例化,只在客户端实例化的场景其实是有一些的。
  2. 在 componentDidMount 或者 useEffect 中实例化
  3. 使用 jsdom
const { JSDOM } = require('jsdom')
const dom = new JSDOM('<!doctype html><html><body></body></html>', { url: 'http://localhost' })

global.window = dom.window
global.navigator = window.navigator

后续会通过 global 和 window 判断内置服务端渲染支持