阅读 facebook大佬:Dan Abramov 的文章颇有感悟

大佬 github地址 https://github.com/gaearon

重点总结

  1. useEffect 是同步的
  2. 状态是捕获的当前 propsstate
  3. 可以通过 useRef 获取改变后的 propsstate
  4. 依赖项 [] 不能欺骗
  5. 复杂的状态变化应该使用 useReducer
  6. 可以使用 useCallback 设置依赖
  7. 可以使用 useMemo 让复杂对象做动态改变

但有时候当你使用 useEffect你总觉得哪儿有点不对劲。你会嘀咕你可能遗漏了什么。它看起来像class的生命周期...但真的是这样吗?你发觉自己在问类似下面的这些问题:

  • React Hooks 完全指南,读React作者博文感悟(2W字精华)的更多相关文章

    1. (转)2019年 React 新手学习指南 – 从 React 学习线路图说开去

      原文:https://www.html.cn/archives/10111 注:本文根据 React 开发者学习线路图(2018) 结构编写了很多新手如何学习 React 的建议.2019 年有标题党 ...

    2. React Hooks 深入系列 —— 设计模式

      本文是 React Hooks 深入系列的后续.此篇详细介绍了 Hooks 相对 class 的优势所在, 并介绍了相关 api 的设计思想, 同时对 Hooks 如何对齐 class 的生命周期钩子 ...

    3. React Hooks介绍和环境搭建(一)

      React Hooks 简介 2018年底FaceBook的React小组推出Hooks以来,所有的React的开发者都对它大为赞赏.React Hooks就是用函数的形式代替原来的继承类的形式,并且 ...

    4. React Hooks使用避坑指南

      函数组件比类组件更加方便实现业务逻辑代码的分离和组件的复用,函数组件也比类组件轻量,没有react hooks之前,函数组件是无法实现LocalState的,这导致有localstate状态的组件无法 ...

    5. 蒲公英 · JELLY技术周刊 Vol.17: 90 行代码实现 React Hooks

      蒲公英 · JELLY技术周刊 Vol.17 React Hooks 相信大家都不陌生,自被设计出以来就备受好评,在很多场景中都有极高的使用率,其中原理更是很多大厂面试中的必考题,很多朋友都能够如数家 ...

    6. 【独家】React Native 版本升级指南

      前言 React Native 作为一款跨端框架,有一个最让人头疼的问题,那就是版本更新.尤其是遇到大版本更新,JavaScript.iOS 和 Android 三端的配置构建文件都有非常大的变动,有 ...

    7. 通过 React Hooks 声明式地使用 setInterval

      本文由云+社区发表 作者:Dan Abramov 接触 React Hooks 一定时间的你,也许会碰到一个神奇的问题: setInterval 用起来没你想的简单. Ryan Florence 在他 ...

    8. React Hooks简单业务场景实战(非源码解读)

      前言 React Hooks 是React 16.7.0-alpha 版本推出的新特性.从 16.8.0 开始,React更稳定的支持了这一新特性. 它可以让你在不编写 class 的情况下使用 st ...

    9. React Hooks 实现和由来以及解决的问题

      与React类组件相比,React函数式组件究竟有何不同? 一般的回答都是: 类组件比函数式组件多了更多的特性,比如 state,那如果有 Hooks 之后呢? 函数组件性能比类组件好,但是在现代浏览 ...

    随机推荐

    1. HSV 和 HLS颜色空间

      颜色空间 颜色空间是特定的颜色组织:它提供了将颜色分类,并以数字图像表示的方法. RGB 是红绿蓝颜色空间.你可以将其视为 3D 空间,在这种情况下是立方体,其中任何颜色都可以用 R.G 和 B 值的 ...

    2. hdu 3329 The Flood (Flood Fill + MFSet)

      Problem - 3329 用pfs,将淹没时间调整回来,然后用并查集,时间倒序插入点. 代码如下: #include <iostream> #include <algorithm ...

    3. Web应用中request获取path,URI,URL

      Web应用中有各种获取path或URI,URL的方法,假设网页访问地址: http://localhost:8080/tradeload/TestServlet Web应用context: /trad ...

    4. js读取cookie 根据cookie名称获取值、赋值

      借鉴:原作者https://blog.csdn.net/zouxuhang/article/details/80548417   //方法1   //存在问题:如果cookie中存在 aaaname= ...

    5. zoj 2954 Hanoi Tower

      Hanoi Tower Time Limit: 2 Seconds Memory Limit: 65536 KB You all must know the puzzle named "Th ...

    6. IDEA中安装activiti并使用

      1.IDEA中本身不带activiti,需要自己安装下载. 打开IDEA中File列表下的Settings 输入actiBPM,然后点击下面的Search...搜索 点击Install 下载 下载结束 ...

    7. lavarel 响应宏

      宏的概念 计算机里的宏是批量处理的意思.比如我们在进行文本编辑的时候,打错字会有回退的功能——control+z:但是这是我们的键盘操作,计算机在进行处理的时候是不能理解的,他必须对最近两次操作进行比 ...

    8. Vue 2 难点汇总

      数据侦听 Vue.$watch   watch提供了观察和响应实例上数据变动的办法,当有一些数据需要跟随其他数据变化而变化时,如子组件某个数据依赖来自于父组件的prop计算.很直观的会想到计算这功能和 ...

    9. 用户模式 Linux 移植

      用户模式 Linux (UML) 是一个有趣的概念. 它被构建为一个分开的 Linux 内核移植, 有 它自己的 arch/um 子目录. 它不在一个新的硬件类型上运行, 但是; 相反, 它运行在一 ...

    10. javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法

      * offsetWidth 水平方向 width + 左右padding + 左右border-width * offsetHeight 垂直方向 height + 上下padding + 上下bor ...