关于 react hooks 的一些不成熟的想法

2019 年 10 月 10 日
 yukinotech
这两天学习了 react hooks 的 API,和 vue,和 class 组件相比较之后,产生了一些想法。

1、useEffect 不仅仅是替代了生命周期,第二个参数有点实现了类似 vue 的 watch 的功能,尽管是浅监控( object.is 进行判断),可以实现某个变量变化后的,执行一段副作用代码。

2、而 useMemo 有点实现了类似 vue 的 computed 的功能。不过官方也说了 useMemo 不能保证一定缓存。

感觉上 react hooks 确实在场景处理上更加灵活一些,不知道大家怎么看待的
3978 次点击
所在节点    程序员
10 条回复
cuzfinal
2019 年 10 月 10 日
这是为了让你刚方便的使用函数式组件,别跟 vue 比
VDimos
2019 年 10 月 10 日
hooks 是为了解决函数式组件无状态的问题,vuex 解决的是状态管理的问题,vuex 对比的应该是 mobx
yukinotech
2019 年 10 月 10 日
@cuzfinal 你说的很对,开发团队增加第二个参数这种功能,就是为了更加方便的使用函数式组件。可见这种类似于 watch 和 computed 的功能对于某些场景是比较方便的。和 vue 类似功能的比较就是思路的延伸,为什么不能类比呢?个人觉得是一种思路的转换
yukinotech
2019 年 10 月 10 日
@VDimos 你可能没有区分 vuex 和 vue 的关系,computed 和 watch 都是 vue 的特性,而不是 vuex 的内容,hooks API 本身和状态管理是无关,自定义 hooks 本身可以复用逻辑,但是不能共享状态的。所以我有点不太明白你在说啥,这个话题和状态管理有关系吗。。
momocraft
2019 年 10 月 10 日
1

useEffect 仍然不能自动追踪 “任意" 变量,需要有什么东西 "推" 变量变化给 react。比如用 rx/mobx 驱动 prop 或 state 的变化。和 watch 感觉方向有微妙的差别。

灵活就主观了,v2 很多 vue 爱好者的。
shunia
2019 年 10 月 10 日
useEffect 比 class 写法省了几十行代码才是真的爽。
但是好像 vue 本来就挺省的。。。

从另外的角度来说,不太懂有什么可比性。

另外你说的关于 hooks 本身的特性都说的很对。
cjc2017
2019 年 10 月 10 日
@momocraft 经常在 v 站看到你努(hua)力(shui)工(mo)作(yu)
VDimos
2019 年 10 月 10 日
@yukinotech 搞混了,想当然以为 computed 和 watch 是 vuex 的了
lithium4010
2019 年 10 月 10 日
最近在用 hooks 重构项目,清爽干净好理解,舒服
monkindey
2019 年 10 月 10 日
Function Component + Hook + Context 写代码不能再爽 。

一些小思考 https://zhuanlan.zhihu.com/p/85569941

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/607872

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX