想问大家公司目前使用 react hooks 的情况怎么样惹

2021-02-08 13:57:52 +08:00
 HariopaNic

公司一直没用,我最近学了下想在下个迭代试试,毕竟想学点新东西,不知道现在大环境下 react hooks 发展成什么样了,大家所在的公司现在比较侧重用 react hooks 嘛

3334 次点击
所在节点    程序员
34 条回复
llb123
2021-02-08 14:12:48 +08:00
已经全面用 hook 了
Jirajine
2021-02-08 14:14:30 +08:00
hook 是 react 的精髓,不用 hook 不如改用 vue 。
duduaba
2021-02-08 14:29:11 +08:00
全面使用,老代码不动,新功能必须 hooks
bzw875
2021-02-08 14:36:16 +08:00
入职以来全是 react hook,搞得我类组件都不熟悉。
karott7
2021-02-08 14:44:33 +08:00
用了 hooks 一年过了,真香,再也不想写类组件了
southlink
2021-02-08 15:21:57 +08:00
hooks + ts 香的一批
DOLLOR
2021-02-08 15:26:41 +08:00
我曾经因为 class 嫌弃 react,后来因为 hook 喜欢上 react 。
10bkill1p
2021-02-08 15:50:35 +08:00
老项目还是 class,新项目一律 hooks
weimo383
2021-02-08 16:24:25 +08:00
惹,你竟然说惹
weixiangzhe
2021-02-08 17:00:19 +08:00
hook 加 ts 加一
imjamespond
2021-02-08 17:02:40 +08:00
看情况,hooks 要在 fc 里,fc 不能用修饰
zhuweiyou
2021-02-08 17:04:16 +08:00
全面 hooks
imjamespond
2021-02-08 17:04:25 +08:00
fc 的 setstate 没有 callback,不方便
gxm44
2021-02-08 17:36:00 +08:00
全面 hooks
wobuhuicode
2021-02-08 17:37:53 +08:00
@imjamespond hook 之后不需要 callback,直接使用 useeffect 就好了
imjamespond
2021-02-08 17:39:50 +08:00
@wobuhuicode 要的哦,比如有 a,b 两个按钮都要改某个 state 但实现业务不同,回调不能相同哦
azcvcza
2021-02-08 17:40:27 +08:00
@imjamespond 可以自己封一个
```
function useCallbackState(state){
const callbackRef = useRef();
const [data, setData] = useState(state);

useEffect(
()=>{

callbackRef.current && callbackRef.current(state)
},[state]
)

return [data, function(d, callback ){
callbackRef.current = callback;
setData(d);
}]

}
```
正常使用就是 const [s1, setS1] = useCallbackState(1); // 返回的 setS1 = function(state,callback) 与 class 版本统一;
使用回调直接 setS1(2, ()=>{})即可
imjamespond
2021-02-08 17:40:58 +08:00
useeffect 对应的是 componentdidupdate,不是 setstate 的 callback 哦
@wobuhuicode
imjamespond
2021-02-08 17:47:06 +08:00
@azcvcza 这个实现我知道,但是 callback 中如果要调用其它的 fc 的方法比如 foo,foo 中的打印 data 还是旧的,class 中 callback 调用其它成员 method 就没这个问题
wobuhuicode
2021-02-08 18:07:47 +08:00
@imjamespond
如果刚使用 hooks 的话这样对应的话就没有太多的问题,但是随着深入使用的话,这种类比使用就会让你很困惑。
其实 setState 的 callback 和 componentdidupdate 是等价的。但是由于 class 写法的 state 最终还是一个 big object 。componentdidupdate 无法把 state 分割到你想要的颗粒度。
要说 useeffect 除了是一个 componentdidupdate 之外,它还是一个更理想的数据监听器。

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

https://www.v2ex.com/t/752334

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

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

© 2021 V2EX