V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
HariopaNic
V2EX  ›  程序员

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

  •  1
     
  •   HariopaNic · Feb 8, 2021 · 3984 views
    This topic created in 1907 days ago, the information mentioned may be changed or developed.

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

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

    全面用 hook 了的一定要用上 ts 吗?

    另外,状态管理选哪个? redux ? mobx ?
    HariopaNic
        33
    HariopaNic  
    OP
       Feb 20, 2021
    @azcvcza 为啥我在 callback 中打印出来的值还是旧的- -
    azcvcza
        34
    azcvcza  
       Feb 20, 2021
    @HariopaNic 我一般这么用只是为了在 setXXX 后一定会做某件事,useState 这东西高度依赖闭包,你取的时候估计拿到的不是最新值。我只能用 useRef 来解决,或者看其他大佬有没有更好的办法
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2500 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 84ms · UTC 15:39 · PVG 23:39 · LAX 08:39 · JFK 11:39
    ♥ Do have faith in what you're doing.