首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
宝塔
V2EX  ›  程序员

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

  •  1
     
  •   yukinotech · 37 天前 · 812 次点击
    这是一个创建于 37 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这两天学习了 react hooks 的 API,和 vue,和 class 组件相比较之后,产生了一些想法。

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

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

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

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

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

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

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

    一些小思考 https://zhuanlan.zhihu.com/p/85569941
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   848 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 22ms · UTC 22:16 · PVG 06:16 · LAX 14:16 · JFK 17:16
    ♥ Do have faith in what you're doing.