 | | 8 bthulu May 5, 2022  | | 9 nijjba May 5, 2022 via iPhone use-context-selector |  | | 11 pigspy May 5, 2022 就用到了一个 mobx ,说实话我连 mobx 都觉得没有用的必要 |  | | 12 yuthelloworld May 5, 2022 还有 css 相关,less\sass\css-module 是一直在用的。用过 jss ,比较火的 tailwind 没用过 |  | | 13 liliclinton May 5, 2022 状态管理用 jotai ,数据请求用 swr 和 urql |  | | 14 yuthelloworld May 5, 2022 @ liliclinton #13 @ isukkaw #4 搜了下,看起来 jotai 挺香 > Jotai 和 Recoil 概念很相似,都是采用分散管理原子状态的设计模式 所以在用法上也比较相似,但相比之下,还有以下优点 Jotai 的 API 相对 Recoil 简洁很多,并且容易使用 Jotai 不需要用 RecoilRoot 或 Provider 等组件包裹,使得结构可以更简洁 Jotai 定义 Atom 时不用提供 key Jotai 更小巧,大小仅 2.4 kB Jotai 对 TypeScript 的支持更好 |  | | 16 rwecho May 5, 2022 via Android react next.js chakra ui redux toolkit |  | | 17 kangyan May 5, 2022 我用 umi 的 useModel 。
刚才看了一下 jotai ,用法的确简单,就怕和 useState 混淆 |  | | 18 um1ng May 5, 2022 3 怎么感觉比 vue 生态还要乱...
现在 vue3 + vite + ts + pinia 真的挺香的 |  | | 19 Jsonz May 5, 2022 状态管理一直用 rematch...redux 衍生物,jotai 看起来不错 |  | | 21 SolidZORO May 5, 2022 via iPhone 状态管理这块。喜欢分布式就 jotai ,喜欢中心化就 valtio 。目前所有项目已从 jotai 转到 valtio ,就只为了在 jsx 之外也能拿到 state ,感觉很好。体积从 2KB 变成 6KB ,基本上可以忽略不计。 |  | | 22 yazoox May 5, 2022 就多使用了一个 hooks 还是 redux & redux-saga |  | | 24 isukkaw May 5, 2022 @ jin5354 #15 该关注关注 React 生态圈的新玩意啦。 @ kangyan #16 完全不怕混淆,jotai 的 API 就是照搬 useState 设计的。如果你没有局部状态必须 useState 的洁癖的话,完全无所谓。 @ SolidZORO #21 如果需要中心化状态、又喜欢 immutable 的话,可以考虑 zustand 。valtio 、jotai 同作者出品,支持 vanilla ,支持状态中间件,支持 Reducer ,最大的优势是把 state 和 action 写在一起。 |  | | 26 Ansen May 5, 2022 antdesign 一把梭 |  | | 28 putaozhenhaochi May 5, 2022 via Android zustand ,valtio 、jotai 国外开发者是不是都财务自由啦。 造轮子凶的一笔 |  | | 31 SolidZORO May 5, 2022 via iPhone @ isukkaw v 站没有引用特指回复 #24 ,z 虽然也好但是写法相对于 v 太复杂了。 其实可以这么理解 p 家的几个 state lib 。jotai 其实是一切的桥梁,是一个大平台,你想要的 z ,v ,甚至是 localstore 、RQ 什么的,都可以在 jotai 中实现桥接!他就是 p 家的万精油,但是可惜,valtio 实在太好用太简洁了,是一个 mobx-like 的小 lib ,使用上非常先进,也没有 mobx 这种包一层入侵你代码的 observer ,就是纯粹,状态就在哪里了,你想什么读怎么改都行!特别适合某些项目五六层深度的组件忽然想改爸爸的爸爸的爷爷组件中的某个 flag…… 诶,打住不多说了,让大家自己选择吧,valtio 比起 jotai 实在太小众太不出名了。但是却很够用。 |  | | 33 SolidZORO May 5, 2022 via iPhone 1 推荐如果没有强烈的 immutable 需求还真的就只推 valtio 。
jotai 很好,但有个问题(也可能不是),就是你用一个 atom ,比如 [a, setA] = useAtom(aAtom),你写 100 个组件里面的 a 名字就都不一样,但是用的 aAtom 是一个,这样在重构的时候很容易发生疏漏。当然回到我之前说也可能不是问题的问题那句话,可能这就是分布式应有的风格,所以我也无法过多评论。
状态总体分为 api state 也可以说是 data state 。还有一些 global state ,这个保存一些 token 啊 全局 setting 啊(也来自 api )。
react-query 解决了 data state ,是没错,但是其实还要一个 state lib 来存放其他 global state ,并且理想状态这些 global 可以被观察 effect 。如果没有这个需求,那你大可存在 window 。
所以,基于上面的前提,我是觉得 RQ + valtio 是够用且好用的。 |  | | 34 mogita May 5, 2022 UI: evergreen-ui Router: react-router-dom State: @ rematch/core Network: axios Date/time: dayjs |  | | 35 SolidZORO May 5, 2022 via iPhone 而且选型最好还是看看是否通用,比如支不支持 SSR 啦,支不支持 Taro 啊什么的。
我开始用 valtio 的时候发现没有 next.js 方案,或者说这个 lib 他妈的太小众了,根本没有同时用 valtio 又用 next.js 的人。结果我看了一下,发现很好解决啊,server 那边注水了放在 window ,然后 client 这边让 valtio 初始化加载 window 上的 INIT_STATE 就好了嘛。
不过也可能因为官方不支持,所以用的人很好,毕竟 SSR 这种原理大部分人都不明白为什么,会用 next.js 就行了。
之前用 recoil 的时候其实是因为不支持 Taro 而弃坑的,没明白为什么一个 state lib 要写那么复杂用那么多 api 。
再就是,泛用性的 lib 比如 mobx 这种,本身 mobx 性能是很好的,或者说极其好!但是一架上 mobx-react 就 gg 了,性能断崖式下跌,当然一般人不处理那种一个 page 几万个 nodes 的应该也不会有什么感觉。但优先选择我还是会选 react ONLY 的 lib ,毕竟针对 render 是有优化的。 |  | | 40 dk7952638 May 5, 2022 已转 svelte 生态,老码农面向养生编程 |  | | 42 Huelse May 5, 2022 像外网评论的那样,react 最好需要个深耕其中的人来带领,不然就库选择上都要踩坑好久 |  | | 43 zzlatan May 5, 2022 前端真特么瞎折腾 。。。这库那库的 |  | | 44 beisilu May 5, 2022 其实可以尝试弄个像 Flutter Favorites 的栏目, 挑选一些人气、文档和 demo 都比较好的库 |  | | 47 gogogo1203 May 5, 2022 animation: framer-motion + Three.js Router: react-router-dom form: formik+yup api: axios+react query state manager : zustand utility:lodash+immer css: classnames+tailwind+marco.twin+styled-components+@emotion UX\UI : react-hot-toast react-spinners-kit @ heroicons/react react-dnd timeago-react vite\typescript\ eslint prettier\ eslint-config-airbn eslint-config-airbnb-typescript |  | | 53 reorx May 5, 2022 via iPhone mobx 挺好,最近简单看过 swr ,ReactQuery ,zustand ,Jotai ,感觉都不能替代 mobx |  | | 54 SolidZORO May 5, 2022 @ reorx 代替 mobx 的只可能是 valtio 这类 Proxy-like 的 lib ,别的 lib 出发点就不是去代替 mobx 的。 |  | | 55 terranboy May 5, 2022 用了 REMIX 没必要用这些乱七八糟的状态管理库了 |  | | 56 isukkaw May 5, 2022 @ SolidZORO #33 你觉得用 jotai 时重构会出疏漏说明你对 jotai 的理解不到位。 和 Recoil 基于字面量的 key 索引状态不同,jotai 是基于引用的。所以如果你要重构基于 jotai 的状态,正确做法是找到声明的 atom ,然后 IDE 中右键寻找所有引用;而不是试图去根据名字去找。 |  | | 57 bthulu May 5, 2022 @ yaphets666 不要看不起 localStorage, jotai 不也有提供 localStorage 的桥接么. 你就把它当成后端的数据库. 抽出一个 js 文件处理与 localStorage 的交互, 其余组件里需要共享状态的引入这个文件就行了. 简单方便快捷, 是个人就能马上上手, 不比这库那库的强? |  | | 58 jchencode May 5, 2022 svelte 就是一个"杂交物",当然,这里的"杂交物"是一个褒义词,吸收各大框架的优点,整出来的玩意,也挺有意思的,我没在生产中用过 |  | | 61 SolidZORO May 5, 2022 @ isukkaw #56 这么 nb 的吗?我刚试了下,貌似不行,用的 JB IDEA ,可否指教一下这种重构操作是怎么实现的? IDEA 会根据 atom 找到 useAtom 前面 [a, setA] 的中 a ?然后全部重命名。 我再描述一下问题吧,比如我有 2 个 comp: ``` // A-Comp const [isOpen, setIsOpen] = useAtom(atomA); ``` ``` // B-Comp const [isVisible, setIsVisible] = useAtom(atomA); ``` 假如 isOpen 在代码中用了,不过我觉得不够好,想改成 isVisible ,这个时候其实 isVisible 和 isOpen 做了同样的事情,也引用了同样的一个 atomA ,但是他们两并不能互相知道,也没必要知道。 但是作为开发者来说,我希望他们应该一样才对,因为都是引用同一个 atomA ,即便是他们名字不一样但是只要 atomA 变了,他们两都要变。 我不知道这样描述是否妥当,我就是自身没办法规避和解决这个问题,所以换成了中心化的 valtio 。 |  | | 63 SolidZORO May 5, 2022 @ bthulu hhhh ,LS 是好的,但是怎么观察 LS 已经改了呢?事实上,state 存哪里不重要,重要的是 state 发生变化了,其他组件要能知道,以便做出响应的变化。 |  | | 64 charlie21 May 5, 2022 如果不用 next.js ,如何做 ssr 服务器端渲染 |  | | 66 wobuhuicode May 5, 2022 写了那么多年都是:React + Redux + react-router 一套下来。去哪都不吃亏。 |  | | 67 ccyu220 May 5, 2022 vite + redux-toolkit + react-router 再加个 less 和 tailwindcss ,没有什么不能做的吧 |  | | 68 beginor May 5, 2022 via Android 我自己用这个组合 react-router ,react-bootstrap ,fetch ,rxjs |  | | 69 magicdawn May 5, 2022 强推 easy-peasy, rtk 太繁琐了 |  | | 70 ruoxie May 5, 2022 我只知道 redux 最难用,最恶心 |  | | 71 TabGre May 5, 2022 14 在这里学来不少于 20 个的新名词 |  | | 73 kingsleydon May 5, 2022 mui emotion next.js jotai swr |  | | 74 Sain May 5, 2022 umi antdpro 一把梭 |  | | 76 lydhr May 6, 2022 nextJS + tailwindCSS |  | | 77 m1911star May 6, 2022 umi + antd ,7 月打算切换到 vite |  | | 79 ccyu220 May 6, 2022 5 又重新看了这个贴,我发现我已经不会 React 了。
我把上面说的那些库的 GitHub 打开,每个都有那么多的 Star 。
到底是我我落伍了还是更新太快。 |  | | 80 christin May 6, 2022 via iPhone 公司还在用 dva ,想迁也没办法迁,之前的文件太多了 |  | | 81 bthulu May 6, 2022 @ SolidZORO 抽出一个 store.js 专门与 localStorage 交互. 通过 store.js 取出所需状态初始化 state 后, 再将 setState 函数挂到这个状态的回调函数数组里, 组件销毁时再从这个数组里移除掉. 有任意组件想改变这个状态, 调用 store.js 里的修改方法, 这个修改方法负责将数据存在 localStorage 里, 并依次执行之前挂载的回调函数. |  | | 87 Q65f257Thf3o2cyZ May 6, 2022 1 react: react 17 or 18 router: react-router 6 ui framework: antd state manager: zustand api: axios + react-query css: classnames + tailwindcss + styled-components dev: vite |  | | 88 Q65f257Thf3o2cyZ May 6, 2022 @ ccyu220 > 算了 Web 端还是主 Vue3 吧,起码没有心智负担。 不太同意这个。 1. 单纯从相关概念来说,Vue 是编译时的。为了编译优化或者其他,造了一大堆语法和概念,虽然不难,但是我感觉增加了心智负担。 2. React 是运行时的。JSX 写法上就是 JS 一把梭,不用管那么多概念,当然这个也是相对的,肯定也会有人感觉它其其他地方增加心智负担(比如楼上的一些回答) |  | | 89 nzbin May 6, 2022 @ xunjianxiang react 和 vue 所有一套下来和 angular 也差不多了,但是开发体验还是 angular 丝滑 |  | | 90 wakaka May 6, 2022 前端卷得太厉害了 |  | | 94 guoliim May 6, 2022 nextjs react-query |  | | 95 CodingNaux May 6, 2022 1 喜欢 vue?直接全部 vue3 composition api 还好 要是项目里同时有 option api, compositon api, 点 vue 文件,点 tsx 文件简直了。 vue 的 mixin 到现在还有人用,怎么维护,怎么重构 vue 的 this 漫天飞怎么维护,怎么重构 vue 还有人不知道怎么写 tsx ,复杂模版的冗余代码怎么维护
就学 react 吧,就是 js ,就那么几个 api 说 angular 好的,有几个真正深度用上 |  | | 96 Liam1997 May 6, 2022 2022 年了,组里还在用 dva 那一套。。。 |  | | 98 GiantHard May 6, 2022 再补充一个跟 mobx 、valtio 一个路子的状态管理库 reactivue ,在 react 里面用 vue3 的 Composition API |  | | 100 beginor May 6, 2022 via Android @ CodingNaux 公司用 angular 做了几年项目,确实省心,但是奈何国内 vue 一边倒了,几乎招不到 angular 的人,新进的都是 vue |
ubao
msn
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
|