介绍
半自动收集数据依赖,数据更新自动渲染依赖组件。 暂时只支持函数组件。
用例
import UpdateManager from 'test';
const Root = createContext('');
function A (props) {
const um = useRef(new UpdateManager({ man1: { h: '你杀了我爹!'}, man2: "" })).current;
useEffect(() => {
setTimeout(() => {
um.setState({
man2: '我是你爹!'
}, 2000);
setTimeout(() => {
um.setState({
['man1.h']: "不!!!!"
})
}, 2000)
});
},[])
return <Root.Provider value={{
um: um
}}> <B/> </Root.Provider>
}
...其他组件
function E () {
const { um } = useContext(Root);
const { say } = um.useDeps({
say (get) {
return get('man1.h');
}
});
return <div>{'man1: ' + say}</div>
}
在 A 组件中使用
um.setState({["man1.h"]: "值"})
就会自动更新使用了
useDeps({say(get){ return get("man1.h")}})
的组件。 useDeps 中方法的返回值就是 useDeps 最后导出的属性的值