关于 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 方法来改变状态,而框架本身会去检查 stateprops 是否已经更改来决定是否重新渲染组件,React 的官方文档对 协调机制 进行了良好的抽象描述,即

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

深入 useEffect

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

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

React 中的 Hook

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

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

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

React 中的 HOC

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

React 中的 Mixin

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

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

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

React-Redux 的实现

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

React 查漏补缺

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

Your browser is out-of-date!

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

×