[TOC]
hox
什么是hox?
react下一代状态管理器
为什么使用hox?
- 使用及其简单的方式,让自定义
hooks
变成共享状态 - 只有一个API, 足够简单
对我来说,用着很简单,有很舒服,很有效的解决了多组件共享状态的问题。
怎么使用hox?
1. 创建自定义共享hooks
import { useState } from 'react';
import { createModel } from 'hox';
// 非共享状态
export const useCounter = () => {
const [count, setCount] = useState(0);
const decrement = () => setCount(prev => prev + 1);
const increment = () => setCount(prev => prev + 1);
return {
count,
decrement,
increment
};
};
// 共享状态
export const useShareCounter = createModel(useCounter);
- 使用
createModel
函数,将自定义的hookuseCounter
包裹一下,即可获得一个共享的自定义共享hookuseShareCounter
;
原理
总结
妙不可言。
优点
- 多组件共享同一个hook的状态
- 任何副作用的位置都可以无更新获取到hook的状态
- 任何副作用的威客都可以无更新去更新kook的状态
缺点
- 状态需要手动销毁