clean-state
clean-state copied to clipboard
请教:父组件(A)和子组件(B,C)Mixin问题
问题:父组件A下面有2个子组件B,C,他们三个分别都有自己的状态,并且需要数据共享,还可以触发相互之间的效应。
按照给出的Mixin方法,需要在子组件B, C单独定义自己的module,在父组件定义自己的common module。通过import提升,在父组件里面先导入子组件的Modue,然后调用minxin()混合modules,再调用bootstrap()注册到state。
这样有一个问题,父组件需要import所有子组件的module,相互耦合很强。 请问最佳结构是怎么设计?
能否在父组件和子组件分别先独立注册自的模块,然后子组件再独立混合到父组件中,达到共享状态的办法。
谢谢!
您好,我们其实只是提供了一个公共的模块注册入口,在注册的时候其实是不区分该状态隶属父组件还是子组件,只是在use的时候会建立绑定关系。Mixin是为了大家使用上的便利而暴露的,不是必要的使用条件的。
你好,冷叶: 这样的话,这个机制的方案是用静态的方法建立一个公共的仓库,仓库里有很多标签,每个标签都有state/reducer/effect信息块。外部组件用useModule获得相应的标签下的信息块,进行数据交换的。这个仓库对所有组件都是公平且透明的。 另外,由于是静态创建,相关标签信息块的具体内容文件,实际上都是要预先放到这个仓库的目录下(或者间接导入到这个目录下),而不是像redux那样,各自跟随在对应功能的组件里面。