公司一直没用,我最近学了下想在下个迭代试试,毕竟想学点新东西,不知道现在大环境下 react hooks 发展成什么样了,大家所在的公司现在比较侧重用 react hooks 嘛
1
llb123 2021-02-08 14:12:48 +08:00
已经全面用 hook 了
|
2
Jirajine 2021-02-08 14:14:30 +08:00 via Android
hook 是 react 的精髓,不用 hook 不如改用 vue 。
|
3
duduaba 2021-02-08 14:29:11 +08:00
全面使用,老代码不动,新功能必须 hooks
|
4
bzw875 2021-02-08 14:36:16 +08:00
入职以来全是 react hook,搞得我类组件都不熟悉。
|
5
karott7 2021-02-08 14:44:33 +08:00 via iPhone 1
用了 hooks 一年过了,真香,再也不想写类组件了
|
6
southlink 2021-02-08 15:21:57 +08:00
hooks + ts 香的一批
|
7
DOLLOR 2021-02-08 15:26:41 +08:00
我曾经因为 class 嫌弃 react,后来因为 hook 喜欢上 react 。
|
8
10bkill1p 2021-02-08 15:50:35 +08:00
老项目还是 class,新项目一律 hooks
|
9
weimo383 2021-02-08 16:24:25 +08:00 via Android 4
惹,你竟然说惹
|
10
weixiangzhe 2021-02-08 17:00:19 +08:00 via Android
hook 加 ts 加一
|
11
imjamespond 2021-02-08 17:02:40 +08:00 via Android
看情况,hooks 要在 fc 里,fc 不能用修饰
|
12
zhuweiyou 2021-02-08 17:04:16 +08:00
全面 hooks
|
13
imjamespond 2021-02-08 17:04:25 +08:00 via Android
fc 的 setstate 没有 callback,不方便
|
14
gxm44 2021-02-08 17:36:00 +08:00
全面 hooks
|
15
wobuhuicode 2021-02-08 17:37:53 +08:00
@imjamespond hook 之后不需要 callback,直接使用 useeffect 就好了
|
16
imjamespond 2021-02-08 17:39:50 +08:00 via Android
@wobuhuicode 要的哦,比如有 a,b 两个按钮都要改某个 state 但实现业务不同,回调不能相同哦
|
17
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, ()=>{})即可 |
18
imjamespond 2021-02-08 17:40:58 +08:00 via Android
useeffect 对应的是 componentdidupdate,不是 setstate 的 callback 哦
@wobuhuicode |
19
imjamespond 2021-02-08 17:47:06 +08:00 via Android
@azcvcza 这个实现我知道,但是 callback 中如果要调用其它的 fc 的方法比如 foo,foo 中的打印 data 还是旧的,class 中 callback 调用其它成员 method 就没这个问题
|
20
wobuhuicode 2021-02-08 18:07:47 +08:00
@imjamespond
如果刚使用 hooks 的话这样对应的话就没有太多的问题,但是随着深入使用的话,这种类比使用就会让你很困惑。 其实 setState 的 callback 和 componentdidupdate 是等价的。但是由于 class 写法的 state 最终还是一个 big object 。componentdidupdate 无法把 state 分割到你想要的颗粒度。 要说 useeffect 除了是一个 componentdidupdate 之外,它还是一个更理想的数据监听器。 |
21
zhuzhibin 2021-02-08 18:14:20 +08:00
我想请教一下使用 react-hooks 的优势有哪些?
|
22
imjamespond 2021-02-08 20:02:09 +08:00 via Android
@wobuhuicode 要说监听 class 可以 shouldupdate 和 didupdate,里面可以根据业务比如大于或小于,而 hooks 要用 ref 保存更新之前的值,反而麻烦,只能说互有利弊,个人认为 hooks 不能完全替代 class
|
23
beginor 2021-02-08 20:33:59 +08:00 via Android
最近也才发现 hooks 真象
|
25
danieladu 2021-02-08 21:08:30 +08:00 via Android
必须全面使用,配合 ts,太香了
|
26
duan602728596 2021-02-08 22:01:47 +08:00 via iPhone
项目全部使用 hook,太香了,太爽了,太舒服了
|
27
JerryCha 2021-02-08 22:30:25 +08:00
什么?居然还有人写 React 没用 hook ?
|
28
guoliim 2021-02-08 22:35:18 +08:00
already hook
|
29
cleveryun 2021-02-09 12:37:21 +08:00 via Android
普及度这么高的吗,我们项目框架版本轻易不更改,还没到可以用 hook 的版本
|
30
HariopaNic OP @cleveryun 我们也是,所以一直没办法试试新东西。
|
31
SmiteChow 2021-02-10 10:42:34 +08:00
使用了一个月了,个人认为已经 Ready for Production 。
|
32
Jtyczc 2021-02-12 05:11:28 +08:00
我就想问问
全面用 hook 了的一定要用上 ts 吗? 另外,状态管理选哪个? redux ? mobx ? |
33
HariopaNic OP @azcvcza 为啥我在 callback 中打印出来的值还是旧的- -
|
34
azcvcza 2021-02-20 11:31:59 +08:00
@HariopaNic 我一般这么用只是为了在 setXXX 后一定会做某件事,useState 这东西高度依赖闭包,你取的时候估计拿到的不是最新值。我只能用 useRef 来解决,或者看其他大佬有没有更好的办法
|