好久没做前端了,最近看看了 React 前端状态管理,感觉依旧很难选择。
Redux 这类框架感觉写起来实在是太累。
Mobx 之前很看好,但是现在似乎也没什么人气了。
https://openbase.com/categories/js/best-react-state-management-libraries 这里提到了 xstate 和一些其他的新库,但是都感觉各有千秋吧。
不知道大家在 2022 年更推荐什么?
![]() | 1 gouflv 2022-03-14 13:00:09 +08:00 ![]() 在关注 zustand 和 recoil |
2 CodingNaux 2022-03-14 13:15:17 +08:00 没做 web app,所以用的都是 context + hook |
![]() | 3 maichael 2022-03-14 13:32:02 +08:00 SWR+Recoil |
![]() | 4 Chism 2022-03-14 13:32:03 +08:00 这个跟用 class 还是 function 组件也有关吧 |
5 me221 2022-03-14 13:33:31 +08:00 recoil |
![]() | 6 dany813 2022-03-14 13:33:41 +08:00 还是 redux 习惯了,加上 context |
![]() | 7 sweetcola 2022-03-14 13:36:51 +08:00 目前还是 Redux ,配合 reduxjs/toolkit 能减少一些代码量。 Recoil 还是等正式版出来后才再去考虑是否能替换 Redux 。 |
8 lokya 2022-03-14 13:38:13 +08:00 看需求吧 我们现在还在用 dva 但是 纯 context 也蛮好用的,recoil 有了解过那会还没发正式版 ,就没用 |
![]() | 9 4BVL25L90W260T9U 2022-03-14 13:54:20 +08:00 useSWR + useReducer |
![]() | 10 xff1874 2022-03-14 13:58:10 +08:00 jotai 吧,简单一点。 |
![]() | 11 ericgui 2022-03-14 14:00:51 +08:00 你用习惯了 redux ,其实挺好用的 |
![]() | 12 Immortal 2022-03-14 14:02:05 +08:00 在用 rematch,关注 recoil |
13 fengfuliu 2022-03-14 14:04:03 +08:00 |
14 TWorldIsNButThis 2022-03-14 14:10:14 +08:00 |
![]() | 15 wuchangming89 2022-03-14 14:13:45 +08:00 一直 MobX ,双向绑定简简单单,不花里胡哨 |
![]() | 16 SolidZORO 2022-03-14 14:17:56 +08:00 via iPhone jotai + react-query. |
![]() | 17 duduaba 2022-03-14 14:19:19 +08:00 mobx 吧,语法简练易懂,主要是快。 |
![]() | 18 bnrwnjyw 2022-03-14 14:31:22 +08:00 {} |
![]() | 19 creanme 2022-03-14 14:36:44 +08:00 要不试试 jotai ? |
![]() | 20 L1shen 2022-03-14 14:39:28 +08:00 喜欢 mobx 的也可以试试 valtio, 跟 jotai 同一个组织写的 |
![]() | 21 cloudzqy 2022-03-14 14:45:59 +08:00 现在写的业务都太简单了,我都是 hook 直接撸了,唉。 |
![]() | 22 dartabe 2022-03-14 14:57:51 +08:00 Redux toolkit 别整那些花里胡哨的 |
![]() | 24 liuzhaowei55 2022-03-14 15:31:58 +08:00 via iPhone mobx react lite 加上 mobx state tree 挺好用的 |
![]() | 25 kingsleydon 2022-03-14 15:33:11 +08:00 react-query + jotai |
26 dcsuibian 2022-03-14 15:36:10 +08:00 ![]() 师傅多了房子歪 |
27 newbieRenew 2022-03-14 15:37:13 +08:00 |
![]() | 28 westoy 2022-03-14 15:38:49 +08:00 ![]() 怎么生成一个随机字符窜? 十几年前: 随机读取一个 perl 文件 现在: 问拿什么做 react 的状态管理后随机抽取一个答案 |
![]() | 29 linkopeneyes 2022-03-14 15:44:08 +08:00 ![]() 其实都挺累的 jotai ,valtio ,zustand ,recoil 这些 hook 时代的新状态管理库,用各种 hook 包来包去,而且你敢信吗,前面三个还是一个组织下的,如果没有性能需求 context 直接封装一下就够用了,封装着封装着就变成了一个新的状态管理库,kpi 到手,公司也离不开你了,如果不嫌麻烦 rxjs 自己封装一下我觉得不错 |
![]() | 30 Removable 2022-03-14 15:46:46 +08:00 ![]() 后端选手自学 react ,用的是 recoil |
31 c1273082756 2022-03-14 16:03:00 +08:00 dva? |
![]() | 32 RogerL 2022-03-14 16:08:26 +08:00 zustand, jotai, valtio |
![]() | 33 rioshikelong121 2022-03-14 16:11:40 +08:00 我记得有个 github 仓库列出了几十个状态管理库,谁能把那个库贴出来. |
![]() | 34 dasbn 2022-03-14 16:22:37 +08:00 |
![]() | 35 rioshikelong121 2022-03-14 16:29:19 +08:00 @dasbn 我记得有个内容更多的仓库.不是这个 |
![]() | 37 mwVYYA6 2022-03-14 16:36:44 +08:00 最近试了 recoil ,可以比 context api 少写一点代码 |
![]() | 38 um1ng 2022-03-14 17:18:19 +08:00 其实 vue3 的状态管理 pinia 还是挺好用的 |
39 f360family123 2022-03-14 17:18:31 +08:00 react-query |
40 charlie21 2022-03-14 17:27:02 +08:00 一般思路是 UI state 和 server cache 分开 参考 https://kentcdodds.com/blog/application-state-management-with-react server cache 的状态交给 react-query , UI state 直接 context 。 如果要加入额外的层 用 redux |
![]() | 41 justin2018 2022-03-14 17:33:49 +08:00 |
![]() | 42 w88975 2022-03-14 17:35:39 +08:00 mobx 是我用过最纯的 |
![]() | 43 fernandoxu 2022-03-14 17:51:37 +08:00 |
![]() | 44 zhwithsweet 2022-03-14 19:09:31 +08:00 不怕麻烦的话,可以用 @vue/reactivity ,整活 |
![]() | 45 wobuhuicode 2022-03-14 19:53:16 +08:00 和当年一样,用 redux |
46 vision1900 2022-03-14 19:54:42 +08:00 via Android Mobx 挺好,只是 React 现在 All In 函数式编程了,两者结合就很奇怪 |
47 Cbdy 2022-03-14 19:57:07 +08:00 Jotai |
![]() | 48 dany813 2022-03-14 19:57:27 +08:00 @f360family123 这个是管理 http 接口的吧 |
49 f360family123 2022-03-14 20:12:17 +08:00 @dany813 是的,但是一般应用场景下数据都是从接口拿到的。只要管理接口的数据就可以了,剩下的用 Context |
![]() | 50 isbase 2022-03-14 21:18:24 +08:00 久经考验的还是 redux + hooks ,小点的项目自己封装一些 hooks 配合 context 够用了。 重量级项目可以上 redux ,其他的不推荐 |
![]() | 51 posebear1990 2022-03-14 21:23:41 +08:00 贴一篇旧文: [You Might Not Need Redux]( https://medium.com/@dan_abramov/you-might-not-need-redux-be46360cf367) |
![]() | 52 agdhole 2022-03-14 21:25:37 +08:00 Recoil 很好用 |
![]() | 53 alexmy 2022-03-14 21:35:40 +08:00 hooks + mobx ,一般习惯了就先不换了吧,前端变化那么快,真心赶不上。何况,我是做后端的。 |
![]() | 54 poplar50 2022-03-14 22:44:20 +08:00 via Android tanstack |
![]() | 55 shaodeyu1943 2022-03-14 22:55:44 +08:00 @ospider 老哥,看你一直安利这个。 |
![]() | 56 XTTX 2022-03-14 23:45:58 +08:00 写习惯了 dispatch reducer 的话,zustand 上手是很快的。自带的 persist localstorage 也很舒服。 再加上 immer 去改 nested object,我觉得比 redux,useContext 什么的舒服很多。 |
![]() | 57 rannnn 2022-03-15 00:00:19 +08:00 上 GraphQL 用 Apollo 或者 Relay , 剩下的情况 context 就可以搞定 |
58 fuermosi777 2022-03-15 05:27:44 +08:00 前端变化好快,以前用 mobx 很顺手,时隔几年不写前端,再看已经百花齐放了。 |
![]() | 59 kensoz 2022-03-15 07:47:56 +08:00 recoil |
![]() | 60 Torpedo 2022-03-15 09:56:46 +08:00 redux 挺好的。可以各种自己定制 |
![]() | 61 iamvvv 2022-03-15 10:10:25 +08:00 dva 很舒服 |
![]() | 62 yazoox 2022-03-15 10:28:09 +08:00 还是在用 redux + redux-saga ...... |
63 zishaofei221 2022-03-15 11:11:00 +08:00 小的 hooks 大的 concentjs |
64 undermoodzyx 2022-03-15 15:46:25 +08:00 dva 加 model 工厂模式,嗯,好吃 |