V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
cszchen
V2EX  ›  程序员

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

  •  
  •   cszchen · Jan 19, 2018 · 8072 views
    This topic created in 3029 days ago, the information mentioned may be changed or developed.

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

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

    Supplement 1  ·  Jan 19, 2018

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

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

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

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