westore
westore copied to clipboard
如果实现状态共享呢?
A,B两个页面
A 页面的登录态,需要B页面 登录刷新
A 有自己的model B 也有自己的model ,
看了源码,绑定的 view id 会做自增长,view的状态更新没法共享
store 里可以 import 多个 model 组合。比如假设 登录态信息在 user model 里,a 页面的 store 和 b 页面的 store 都可以使用 user model
这里可以看到 store 可以组合 model https://github.com/Tencent/westore/blob/master/packages/westore-example/stores/other-store.js#L3-L4
每次new 出来的 model 实例 都是一个新的变量,之前绑定的 model 不会随之改变的
想知道,a 页面的 store如何 根据 b页面的 store 触发时候得到更新
1.你可以先new 出来再import到 各个store
2.westore 没有斩断 store 之间的通讯吧,这个可以开发者自己组织依赖关系、发布订阅什么的。
model之间可以多对多互相依赖,store之间可以多对多互相依赖,model和store之间可以多对多互相依赖。
westore只是斩断model和view之间的依赖。
好的,谢谢👍🏻
这种组织结构非常棒
不同页面之间同一个model 。data不更新,
参考这个库我自己另外实现一个状态管理 https://gist.github.com/SakuOtonashi/c98aa31d2b5fdc82ba0bcdb1eb8e07cd 强化了Store的作用:Store和页面/组件是多对多绑定,绑定时指定属性名用来隔离多个Store绑定在同一个页面/组件上命名冲突。
Page({
data: {
stateData: stateStore.data,
},
onLoad() {
this._ssViewId = stateStore.connectAndUpdate('stateData', this)
},
onUnload() {
stateStore.disconnect(this._ssViewId)
},
getUnreadCount() {
stateStore.getUnreadMessageCount()
},
})
“想知道,a 页面的 store如何 根据 b页面的 store 触发时候得到更新” 同想知道。下面大神的回答我不太清楚,请问您是怎样解决的呢
如果是tabbar页面的话,页面A,B使用同一个store,此时数据无法同步更新
好的,谢谢👍🏻
这种组织结构非常棒
请问,这里你是怎么处理的