Keys 是 React 用于追踪哪些列表中元素被修改、被添加或者被移除的辅助标识。
虚拟 DOM 本质上是 JavaScript 对象,是对真实 DOM 的抽象表现。 状态变更时,记录新树和旧树的差异 最后把差异更新到真正的 dom 中 render 函数:
根据 tagName 生成父标签,读取 props,设置属性,如果有 content,设置 innerHtml 或 innerText,
如果存在子元素,遍历子元素递归调用 render 方法,将生成的子元素依次添加到父元素中,并返回根元素。
constructor->getDerivedStateFromProps->render->componentDidMount
getDerivedStateFromProps->shouldComponentUpdate->render->getSnapshotBeforeUpdate->componentDidUpdate
componentWillUnmount
getDerivedStateFromError
componentDidCatch
bind 和箭头函数
React Fiber 是一种基于浏览器的单线程调度算法.
被废弃的三个函数都是在 render 之前,因为 fiber 的出现,很可能因为高优先级任务的出现打断现有任务导致它们被执行多次。
V16.0 之后 React 更新了其渲染机制,是通过异步的方式进行渲染的,在 render 函数之前的所有函数都有可能被执行多次。
具体原因可看:https://zhuanlan.zhihu.com/p/150929928
用动画和实战打开 React Hooks(一):useState 和 useEffecthttps://juejin.cn/post/6844904127110053895
用动画和实战打开 React Hooks(二):自定义 Hook 和 useCallbackhttps://juejin.cn/post/6844904132164190221
用动画和实战打开 React Hooks(三):useReducer 和 useContexthttps://juejin.cn/post/6844904149746728973
hoc 能复用逻辑和视图,hook 只能复用逻辑。