在mobx-react的使用描述中,会说明在根节点下Provider中注册store,以达到解决全局变量共享的问题,例如
class App extends React.Component{
render(){
return (
<Provider store={AppStore}>
<Router/>
</Provider>
)
}
}
但是如果既需要全局变量,也需要子业务需要做到非全局变量共享,(可以认为是多个局部内的全局变量需求)但是肯定又不是用state(因为子业务下也会拆分很多模块,一个state在多页面传递很蠢),mobx能不能在子业务中挂载多个provider呢,例如
class App extends React.Component{
render(){
return (
<Provider store={TotalStore}>
<Router>
<PageA>
<Provider store={AStore}>
</Provider>
</PageA>
<PageB>
<Provider store={BStore}>
</Provider>
</PageB>
<PageC>
<Provider store={CStore}>
</Provider>
</PageC>
</Router>
</Provider>
)
}
}
这样在路由进行跳转后可以自动初始化,离开页面自动销毁变量。如果是一个全局根节点还需要每次去手动维护变量的初始化,以及考虑是否会有可能的内存泄露问题。
或者说如果有这样的需求,该怎样处理数据流呢?