关于 Hook 的一些总结

因为手头上了项目暂时告一段落,也终于有时间可以回过头来总结总结,因为在之前关于 React 的使用也仅仅只局限在小型应用当中,而目前完结的这个项目算是整体基于 React 全家桶搭建而成的项目

当然在开发当中也遇到了不少棘手的问题,也踩了不少的坑,尤其是关于 Hook 的一些使用方面,所以也就打算抽些时间,重新温故一下文档以及参考一些前辈们整理的文章,简单的梳理一下在使用 Hook 过程当中遇到的一些问题和总结

自定义 Hook

因为最近在项目当中使用了较多的 Hook 来进行开发,用到了不少的自定义 Hook,期间也踩了不少的坑,所以打算在这里简单的总结梳理一下

因为我们在之前的 React 中的 Hook 章节当中已经梳理过了关于 Hook 的一些基本使用内容,所以这里也就不再多做提及,我们主要来深入的了解一些自定义 Hook 的封装和使用方式

Fiber 架构的简单实现

我们在之前的文章当中梳理了 React Fiber 相关内容,了解了 Fiber 的基本作用以及它内部一些简单的运行原理,所以在本章当中我们来继续深入理解其原理,尝试尝试手动的模拟实现一个简易版本的 Fiber 架构,本文主要参考的是 Build your own React,内容有所调整,主要是为了方便自己理解,更多详细内容可以查看原文,下面我们就先从 JSX 开始看起

完整代码地址可见 Fiber 架构的简单实现

深入 React Fiber

我们都知道,React 是一个用于构建用户交互界面的 JavaScript 库,其核心机制就是跟踪组件的状态变化,并将更新的状态映射到到新的界面,在 React 中,我们将此过程称之为『协调』(Reconcilation),我们调用 setState 方法来改变状态,而框架本身会去检查 state 或 props 是否已经更改来决定是否重新渲染组件,React 的官方文档对 协调机制 进行了良好的抽象描述,即

React 的元素、生命周期、render 方法,以及应用于组件子元素的 Diffing 算法综合起到的作用,就是『协调』

深入 useEffect

我们在之前的章节当中已经整体的梳理一遍 React 当中的几种状态逻辑复用的方式,从 Mixin 到 HOC,再到最后的 Hook,虽然 Hook 算是比较新的内容,但是它也已经渐渐开始变得普及起来

所以在本章当中,我们就来深入的了解一下 Hook 当中的 useEffect,主要参考的是官方 FAQ 当中的 如果我的 effect 的依赖频繁变化,我该怎么办?,更多详细内容可以参考文档

React 中的 Hook

我们在之前 React 中的 Mixin 和 React 中的 HOC 的章节当中介绍了 Mixin 和 HOC 的相关内容,了解了它们大致的实现原理和使用方式,也知道了 HOC 的出现就是为了替代 Mixin,但是 HOC 也并非完美无缺,它其实也是存在着一些缺陷的,比如

  • HOC 需要在原组件上进行包裹或者嵌套,如果大量使用 HOC,将会产生非常多的嵌套,这让调试变得非常困难
  • HOC 可以劫持 props,在不遵守约定的情况下也可能造成冲突

所以在本章当中我们就来看看 React 中的 Hook 是如何同时解决 Mixin 和 HOC 所带来的问题的

React 中的 HOC

我们在之前的 React 中的 Mixin 章节当中介绍了一些 Mixin 的基本原理和它存在的一些问题,而且在之前我们也提到过,React 现在已经不再推荐使用 Mixin 来解决代码复用问题,因为 Mixin 带来的危害比他产生的价值还要巨大,推荐我们使用高阶组件来替代它,所以在本章当中我们就来深入的了解一下什么是高阶组件,它的实现方式和应用场景以及存在的一些问题

React 中的 Mixin

最近在复习到 React 高阶组件相关内容的时候,发现之前比较常见的 Mixin 已经差不多被废弃了,而 HOC 相关内容也渐渐的在被 Hook 所替代,只能感叹变化太快

所以在这里打算重新的从头梳理一下,将之前博客当中关于 React 的一些过时内容也删减整合一下,也算是重新的温习一下 React 当中的几种状态逻辑复用的方式,也就是 Mixin,HOC 和 Hook 它们几者的实现原理、使用方法、实际应用以及如何选择等内容

我们先从快要被抛弃的 Mixin 开始看起,不过内容不会介绍很多,毕竟现在使用的已经不是很多了

React-Redux 的实现

接上回 Redux 的实现,我们在之前的章节当中,从一个简单的示例开始一步一步推导出 Redux 的实现方式,但是之前我们也提到过,它其实跟 React 一点关系都没有,所以在本章当中我们会把 React 和 Redux 结合起来,用 Redux 模式帮助我们来管理 React 的应用状态

React 查漏补缺

本章主要用于记录一些 React 相关知识点,因为最近在复习 React 相关内容,发现版本迭代了许多,废弃了很多 API,也添加了一些新的方法(比如生命周期钩子等),所以就简单的在这里汇总整理一下,也算是查漏补缺

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×