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

大型 React 项目的所有数据源都需要用 Redux 管理吗

  •  
  •   cszchen · 2018-01-19 11:43:23 +08:00 · 7118 次点击
    这是一个创建于 2279 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司的项目比较复杂,Web 端用 React 开发,所有数据源都采用 Redux 管理。

    疑问:Redux 难道不是为了管理复杂的、需要在多个组件内共用的数据的吗?

    第 1 条附言  ·  2018-01-19 12:59:57 +08:00

    我确定我们的项目是需要 Redux 的 现在所有的数据都是通过 Redux 来管理的,并且我是没法取改变的

    只是想探讨,请教一下大家,解除心头疑惑。其实不论是什么结论都没卵用,老大说怎么搞就怎么搞。

    33 条回复    2018-07-24 13:08:59 +08:00
    swirling
        1
    swirling  
       2018-01-19 11:56:19 +08:00   ❤️ 1
    这叫 redux 原教旨主义, 有一些对于组件的 local state 就存组件内部吧, 比如 active tab 一类的. 全丢 redux 也有好处, 就去 redux 找就行了. 但是会导致组件没了 redux 就凉了, 不能灵活切换其他方案.
    song4
        2
    song4  
       2018-01-19 12:11:14 +08:00   ❤️ 1
    开发界始终在做的一件事就是强调“隐藏”的重要性。我内部的数据我自己管理,你不该知道的别知道。
    song4
        3
    song4  
       2018-01-19 12:12:59 +08:00   ❤️ 1
    同意 @swirling 的说法,这叫 redux 原教旨主义,为了用它而用它,你说这不是欠吗。
    k9982874
        4
    k9982874  
       2018-01-19 12:50:24 +08:00
    redux 简直反人类,看看 mobx 吧,已经切换到 mobx,爽的一 B
    cszchen
        5
    cszchen  
    OP
       2018-01-19 12:50:41 +08:00
    @swirling
    @song4 也就是多个组件共享的数据由 Redux 管理,其它的还是组件自己管理?
    learnshare
        6
    learnshare  
       2018-01-19 12:53:36 +08:00
    用人能管理的数据,就别依赖其他库
    Redux 的逻辑 + 组件逻辑 + 业务逻辑,看起来比较头疼
    respect11
        7
    respect11  
       2018-01-19 12:54:50 +08:00   ❤️ 4
    鲁迅曾经说过:
    “如果你不知道是否需要 Redux,那就是不需要它。”
    srx1982
        8
    srx1982  
       2018-01-19 13:02:13 +08:00
    @respect11 鲁迅还行。。
    feverzsj
        9
    feverzsj  
       2018-01-19 13:14:48 +08:00
    react 的数据更新逻辑太 2b,所以有来了个 redux,结果代码越来越乱
    zenxds
        10
    zenxds  
       2018-01-19 13:17:13 +08:00
    mobx + 1
    magicdawn
        11
    magicdawn  
       2018-01-19 13:20:48 +08:00 via iPhone
    @respect11 鲁迅说 我没说过这句话 别找我背锅
    magicdawn
        12
    magicdawn  
       2018-01-19 13:22:21 +08:00 via iPhone
    优先考虑放组件内部 然后设计到共享数据 提升层级 直接提到 redux store
    chmlai
        13
    chmlai  
       2018-01-19 13:30:04 +08:00
    是的
    cctv1005s927
        14
    cctv1005s927  
       2018-01-19 14:59:01 +08:00
    『如果你不知道你是否需要 Redux,那你就别使用它。』
    tyrealgray
        15
    tyrealgray  
       2018-01-19 15:05:31 +08:00 via Android
    Redux 的特点是写起来麻烦,调试起来很方便
    otakustay
        16
    otakustay  
       2018-01-19 15:31:57 +08:00
    Redux 管理“多个组件内共用的数据”这个论断绝对正确,但有一点需要注意,就是这个“多个组件”事实上不是“组件类型”,而是“组件实例”,如果一个组件的多次 mount (离开这个页面了,又回来了)也需要共享这个数据,那他也得在 redux 里

    其它情况,我绝对推荐 local state 的应用
    zgl2007dj
        17
    zgl2007dj  
       2018-01-19 15:58:14 +08:00
    使用 redux 之后会有增加人手的需求 ,团队大了就可以做“复杂”的应用了,🤫。
    zachguo
        18
    zachguo  
       2018-01-19 16:11:03 +08:00
    感觉最适合 redux 的是网页版 photoshop 这种工具型 web app,,,
    假如只是简单树状结构页面(即便项目很大)纯 react 加一些 HOC 就够了。
    murmur
        19
    murmur  
       2018-01-19 16:15:00 +08:00
    个人很 naive 的理解,如果一个东西的状态多到必须用 redux 这种专门的框架解决状态管理问题,在设计、体验上肯定有挑的出来的问题
    state 多在以前可以通过划分页面、向导、简化需求解决,另外页面多、功能多不代表复杂,若干个小模块互不交集只能是大
    我们的一个 web 应用还在用事件
    我的观点,状态机在大学的时候就是考点里的难点,这东西学起来就不易,想写出好的状态更是要功底
    shuson
        20
    shuson  
       2018-01-19 16:17:27 +08:00
    欢迎来 angular 大家庭
    sunnygaofan
        21
    sunnygaofan  
       2018-01-19 16:40:46 +08:00 via iPhone
    mobx+1 爽的不行不行的
    sunnygaofan
        22
    sunnygaofan  
       2018-01-19 16:41:37 +08:00 via iPhone
    复杂点还可以用 mobx state tree 确实比 redux 好用很多
    kenshinhu
        23
    kenshinhu  
       2018-01-19 16:53:16 +08:00
    。。。。其实最反人类是 flux
    wengjin456123
        24
    wengjin456123  
       2018-01-19 16:57:07 +08:00 via Android
    我觉得可以用…我是用了
    kingwl
        25
    kingwl  
       2018-01-19 17:02:14 +08:00 via Android
    理论上来说是全部都要由 redux 管理的 (elm
    但是为了方便 有些组件的 内部 状态可以扔在 state 里面 也就是把组件本身看做是原子的
    lightening
        26
    lightening  
       2018-01-19 17:06:37 +08:00 via iPhone
    都可以。决定了一直贯彻就好。local state 也用 redux 的好处是调试方便,用了 dev tools 可以方便的查看状态和数据。
    guiguan
        27
    guiguan  
       2018-01-19 18:16:18 +08:00 via iPhone
    建议 mobx 或者严格一些的 mobx-state-tree
    vardarling
        28
    vardarling  
       2018-01-19 18:23:15 +08:00
    mobx 爽的不要不要的
    slert
        29
    slert  
       2018-01-20 01:18:15 +08:00
    刚开始我也是很尊重 redux 的一个中心 state 的原则。后来感觉真的麻烦且看不出必要性。然后就去他妈的怎么方便怎么来。
    jigi330
        30
    jigi330  
       2018-01-20 04:18:52 +08:00
    mobx +1
    redux 没看懂
    fuermosi777
        31
    fuermosi777  
       2018-01-20 14:49:41 +08:00
    mobx + 1
    Justin13
        32
    Justin13  
       2018-01-22 19:01:02 +08:00 via Android
    redux 真好用。源码也没多少。函数式爽到。
    Naturel
        33
    Naturel  
       2018-07-24 13:08:59 +08:00
    store 就像一棵果树,不同枝干上面有不同的水果,想吃苹果就去摘苹果,想吃香蕉就摘香蕉。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2751 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 15:40 · PVG 23:40 · LAX 08:40 · JFK 11:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.