基于 React Hooks 实现一个状态管理库

Posted Songlcy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于 React Hooks 实现一个状态管理库相关的知识,希望对你有一定的参考价值。

local state hooks

const Button = () => 
    const [number, setNumber] = useState(0);
    return (
        <Button onPress=setNumber((preState) => preState + 1)>number</Button>
    )

状态逻辑和视图强耦合,违反视图归视图,逻辑归逻辑的常理。多组件内共享状态是通过层层传递的方式实现的,带来冗余代码的同时,根组件的状态将会逐渐变成 “庞然大物”。


将状态逻辑抽离成独立的hook


function useNumber() 
    const [number, setNumber] = useState(0);
    const increment = useCallback(() => 
        setNumber((preState) => preState + 1)
    , [number]);
    return 
        number,
        increment 
    ;
const Button = () => 
    const [number, increment] = useNumber();
    return (
        <Button onPress=increment>number</Button>
    )

舒服多了,状态逻

以上是关于基于 React Hooks 实现一个状态管理库的主要内容,如果未能解决你的问题,请参考以下文章

mobx中的inject,observer迁移至react Hooks写法

React Hooks 状态管理方案探索

React Hooks 状态管理方案探索

React Hooks 状态管理方案探索

React hooks:它们对共享状态管理有用吗,例如还原?

基于 React hooks + Typescript + Cesium 的 三维 webgis 实战系列教程