是这样, 我现在用dva 开发 electron的 pc端, 里面涉及到各个页面需要同步store的问题。 难道现在只能在主线程存一个store, 然后通知各个渲染线程页面去更新自己的store么? 这样维护2份store有点恶心喔。
store不是本来就是所有组件都共享的吗?
main 端用 dva 了? 为啥 main 要维护 store? 我们做 electron app 是在 renderer 里用 dva,逻辑写在 effect 里,涉及到 main 的功能通过 remote 调 main 的 service 来实现。
@sorrycc 是这样, 我这边是在 渲染线程使用dva的, 昨天提的问题描述的确实不清楚。
我这边是这样一个情况, 可能同时存在多个窗口, 并且会维护本地一套数据库。 用户的操作 会同时 请求server, 同步所有窗口state, 操作本地数据库。 为了使有些使用频繁的数据能响应迅速(直接从内存中读取), 所以会在main线程 维护一个共享store(可能很大, 所以不希望每个渲染线程都存一份)。这个store对于渲染线程是只读的。
我现在的处理方法: 用户action -> effect(请求server, 通知主线程操作数据库, 通知所有渲染线程调用对应的reducer)-> 各个渲染线程调用自己的reduce更新state
应该是正确的方法了。
@xingyuzhe 不知道你需要的是不是这个 https://github.com/hardchor/electron-redux
我们试过在 electron 的 main 端和 renderer 端同时用 dva,并不合适,虽然逻辑上可以分地比较清楚,但是太繁琐了。
@nengkuai 谢谢我会参考的