react 18 新增了启发式的并发渲染机制,副作用函数会因为组件重渲染可能调用多次,为了帮助用户理清正确的副作用使用方式,在开发模式启用StrictMode时,会刻意的故意调用两次副作用函数,来达到走查用户逻辑的效果,但此举也给部分升级用户带来了困扰,本文将讨论helux如何规避此问题。helux 简介helux是一个主打轻量、高性能、0成本接入的react状态库,你的应用仅需替换useState为useShared,然后就可以在其他代码一行都不用修改的情况下达到提升react局部状态为全局共享状态的效果,可访问此在线示例了解更多。import React from 'react';
+ import { createShared, useShared } from 'helux';
+ const { state: sharedObj } = createShared({a:100, b:2});
function HelloHelux(props: any) {
- const [state, setState] = React.useState({ a: 100, b: 2 });
+ const [state, setState] = useShared(sharedObj);
// 当前组件仅依赖a变更才触发重渲染
// helux会动态收集当前组件
...
继续阅读
(44)