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

兄弟们, React 状态管理库推荐哪个呢? zustand, mobx, jotai, redux?

  •  
  •   inSpring · 2024-04-01 21:35:21 +08:00 · 5147 次点击
    这是一个创建于 368 天前的主题,其中的信息可能已经有所发展或是发生改变。

    花了大半天时间,选择困难症,选哪个好呢?

    29 条回复    2024-06-05 00:11:12 +08:00
    estk
        2
    estk  
       2024-04-01 21:47:41 +08:00 via iPhone
    mobx-lite
    enchilada2020
        3
    enchilada2020  
       2024-04-01 21:48:15 +08:00 via Android
    我穿越了…
    XCFOX
        4
    XCFOX  
       2024-04-01 21:51:40 +08:00   ❤️ 1
    valtio ,类似 vue3 的 reactive ,真正的自动档状态管理。

    https://github.com/pmndrs/valtio
    K120
        5
    K120  
       2024-04-01 22:06:16 +08:00
    React 的状态库真的是层出不穷,一起卷
    jackge0323
        6
    jackge0323  
       2024-04-01 22:09:00 +08:00
    context
    donaldturinglee
        7
    donaldturinglee  
       2024-04-01 22:13:15 +08:00
    zustand 或者就 RTK
    gap
        8
    gap  
       2024-04-01 22:29:14 +08:00
    react query
    Philippa
        9
    Philippa  
       2024-04-01 22:31:01 +08:00
    我之前用 jotai
    iOCZS
        10
    iOCZS  
       2024-04-01 22:31:44 +08:00   ❤️ 1
    redux toolkit
    ryHope
        11
    ryHope  
       2024-04-01 22:38:05 +08:00
    zustand
    Removable
        12
    Removable  
       2024-04-01 22:51:41 +08:00 via iPhone
    个人用 jotai ,简单方便
    kid740246048
        13
    kid740246048  
       2024-04-02 00:24:04 +08:00   ❤️ 1
    zustand 或者 jotai 吧,取决于你是不是需要在组件外操作状态,需要的话选 zustand ,否则 jotai
    BwNVlwSq
        14
    BwNVlwSq  
       2024-04-02 00:27:15 +08:00
    zustand+1
    lee88688
        15
    lee88688  
       2024-04-02 09:13:18 +08:00
    @kid740246048 jotai 也是可以在组件外操作状态的,使用默认的 store 或者自己创建 store 就行。
    ruoxie
        16
    ruoxie  
       2024-04-02 09:15:50 +08:00 via Android
    redux 不配
    lstz
        17
    lstz  
       2024-04-02 09:22:31 +08:00 via Android
    redux 现在很好用了,跟以前不一样了
    gloye
        18
    gloye  
       2024-04-02 09:55:02 +08:00
    如果是 redux 时代过来的,就 redux-toolkit ,否则就 zustand
    zzlove
        19
    zzlove  
       2024-04-02 10:06:35 +08:00
    https://github.com/evolify/tiny
    试试这个,用起来很简单
    AyaseEri
        20
    AyaseEri  
       2024-04-02 10:20:46 +08:00
    OOP 选 mobx ,FP 选 Jotai 。剩下两个不了解。
    bearboss
        21
    bearboss  
       2024-04-02 11:07:04 +08:00
    用了 zustand 后来加上 react query 维护了远程状态 发现没啥本地状态需要管理的 用 context 都行
    iOCZS
        22
    iOCZS  
       2024-04-02 11:47:01 +08:00
    不过 redux toolkit 的学习成本和集成度都挺高的😂
    shunia
        23
    shunia  
       2024-04-02 14:18:15 +08:00   ❤️ 1
    context 足够使用,绝大部分情况下不缺那点性能。而且三方库往往心智负担更大,等于是你在一个心智负担最小的框架里,硬塞一个心智负担拉满的库。如非必要,勿增实体,我觉得可以部分用在这里。

    如果你实在要用,个人推荐一个小众的 https://github.com/xoidlabs/xoid
    我觉得各种库没有本质区别,基本上就是看语法喜好而已。
    Imindzzz
        24
    Imindzzz  
       2024-04-02 14:54:07 +08:00 via Android
    createContext useContext
    wu67
        25
    wu67  
       2024-04-02 14:59:21 +08:00
    本来我想说 recoil 的, 这是我在 react 生态用过最好的状态库. 但是上去一艘, 好家伙, 一年多没更新了, 然后发现脸书他们自己的项目以来也跑路去 jotal 了, 我只能说裁员好死....

    https://github.com/facebook/sapling/commit/547b205eab16fc78d73ec8edb38b2b2bdc84ddf2
    oliveira
        26
    oliveira  
       361 天前
    如果你熟悉 react hooks 可以试试 hostore: https://github.com/wuwenbang/hostore
    Wxh16144
        28
    Wxh16144  
       329 天前   ❤️ 1
    没有最好,只有适合自己的,分享一下蚂蚁设计师闻冰的 zustand 实践吧,我看了他的几个项目颇有收获

    1. 为什么是 Zustand https://zhuanlan.zhihu.com/p/591981209
    2. 基于 Zustand 的渐进式状态管理实践 https://zhuanlan.zhihu.com/p/592383756

    然后去看这位设计工程师的代码组织

    1. https://github.com/ant-design/pro-editor
    2. https://github.com/ant-design/pro-flow
    3. https://github.com/lobehub/lobe-chat/tree/main/src/store
    himeson
        29
    himeson  
       304 天前 via Android
    现在从 ng 换到 react 准确说是 preact 因为有 signals 。以后所有前端状态管理的未来。用了回不去
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2260 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 04:37 · PVG 12:37 · LAX 21:37 · JFK 00:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.