V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sillydaddy
V2EX  ›  React

Redux 的 store,与后端的数据库是什么关系?

  •  
  •   sillydaddy · 2022-01-10 19:45:46 +08:00 · 2215 次点击
    这是一个创建于 1050 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Redux 里的 store 是作为前端的 model 层,作为 view 层的唯一来源(true source)。

    如果有后端数据库的话,那么 store 相当于是后端数据的一个缓存。对于小型项目,这样做是不是有点重复呢?

    大家在项目中都是怎么实践的啊。
    8 条回复    2022-01-12 11:53:15 +08:00
    duduaba
        1
    duduaba  
       2022-01-10 19:50:31 +08:00   ❤️ 1
    没什么关系,你可以理解这个 store 其实就是一个全局变量,然后监听这个全局变量,当全局变量里面有数据变化时绑定了全局变量的组件就会重新渲染,就是这个原理。
    popbones
        2
    popbones  
       2022-01-10 20:13:20 +08:00 via iPhone
    MVVM 了解下
    cxh116
        3
    cxh116  
       2022-01-10 20:22:35 +08:00 via Android
    比如简单的场景,嵌套组件传属性。从 list 传到 item 。
    janus77
        4
    janus77  
       2022-01-10 20:23:31 +08:00
    小型项目连架构都不需要关心啊。。。。架构这个词就是为大型项目准备的
    rioshikelong121
        5
    rioshikelong121  
       2022-01-10 22:02:39 +08:00   ❤️ 2
    没什么关系。
    Store 对前端应用来说是一个 Single Truth Source ( https://en.wikipedia.org/wiki/Single_source_of_truth)。
    里面可以放一些 api 返回的数据。通过 store 可以代替顶层组件进行应用级别状态的共享。如果你无脑把后端 api 返回放在 store 里面的话,你可以把它认为是一个后端 api 的 cache (实际场景下,store 里面的数据也可以进行一系列的变形和转换过程。),如果是简单 cache 的场景,其实更推荐使用 swr / rtk-query 这样的的 data fetching & caching tools. 而 redux 是一个 state management tools ,这是两个范畴。

    如果 redux 的 time travel, redo-undo ,易于调试,易于进行状态追踪等特性你用不上,说明你可能不需要 redux 。
    sillydaddy
        6
    sillydaddy  
    OP
       2022-01-11 11:00:21 +08:00
    @rioshikelong121
    考虑 redux 主要还是因为用它容易实现 MVC 的模式。之前考虑的都是纯前端,现在跟后端 api/数据库打交道,对于 redux 的 store 和后端 api/数据库是什么关系,有点疑惑,比如前后端数据怎么同步等等。
    sillydaddy
        7
    sillydaddy  
    OP
       2022-01-11 11:02:53 +08:00
    @coderfuns #1
    @popbones #2
    订阅 /MVVM 这些我能理解。不理解的是前端 Redux 与后端数据库的关系。
    wwk
        8
    wwk  
       2022-01-12 11:53:15 +08:00
    和数据库没什么直接关系。
    用 redux 这种形式一般为了管理复杂前端应用(前端自身需要长期维护数据状态,不是通过接口来进行直接刷新数据)的数据流,收束状态变更来源。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3079 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:26 · PVG 22:26 · LAX 06:26 · JFK 09:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.