大型 React 项目的所有数据源都需要用 Redux 管理吗 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
cszchen
V2EX    程序员

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

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

    公司的项目比较复杂,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  
    nbsp;  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     Solana     1431 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 16:46 PVG 00:46 LAX 09:46 JFK 12:46
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86