基于 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写法