React Provider与jotai状态库的优劣
相同点:用于状态管理,React Provider 是 React 原生的状态传递方案,简单但易有性能问题;Jotai 通过原子模型实现精准更新,更适合复杂或高性能要求的场景。
React Provider:
优点:react官方标准解决方案,不需要引用新的依赖,适合主题、用户认证等低频更新状态。
缺点:容易造成嵌套地狱,若 Context 值包含多个字段,任一字段变化都会触发所有消费组件的重渲染。
jotai:
优点:原子级别的依赖追踪,更新仅相关组件重新渲染;无嵌套问题。默认全局注册Provider,无需写明Provider
缺点:轻量全局状态下使用较重
jotai.Provider
如果不使用jotai.Provider包裹组件,atom默认挂载在全局provider,在SPA中可能会有性能问题(atom不卸载)。
解决方案:使用jotai.Provider包裹组件,隔离原子实例,原子实例只在Provider中生效。
注意:atom必须在Provider包裹的组件中引入,否则无法挂载到Provider中