1. 前言

1,109 阅读8分钟

React 知命境」第 1 篇

大家好,我是这波能反杀。一个从 2015 年就开始学习和使用 React 的大前端架构师。《React 知命境》 是一本与清华大学出版社合作的新书。

早在去年 10 月份我就已经在筹备写这本书,前前后后写了很多断章,但是一直不敢正式下笔。出版社的大佬跟我说,如果质量写得好,有机会被大学选为大学教材。这让我有点小激动的同时,也感觉到压力山大。

React 的学习并非易事,如何组织思路才能够让书籍内容通俗易懂,让读者能够顺利掌握 React,这是我思考了很久的事情。为了验证自己的想法,我多次采用了不同的教学方式去引导我的学生从 0 开始掌握 React。值得高兴的是,经过一年多时间的摸索,在让几十名学生都顺利掌握 React 之后,我找到一种最高效的学习方式。

自此才敢下笔。

为了坚定我完整更新这本书的决心,我辞掉了所有工作,推掉了所有应酬,决定以每周至少更新三篇文章的进度为目标,全身心投入到本书籍的编写中来。

刚好 React 18 也正式发布了,这个时间节点也适合我重构内容,重写所有案例,重新梳理整个知识体系。

内容规划

全书内容主要从以下几个部分进项梳理

一、以思想支撑项目

学习一个新知识,没有任何内容比指导思想更重要了。

这全面决定了你接受知识的速度,解决困惑的能力,以及未来你能够达到的最终高度。

我会用一大章内容《React 哲学》来清晰的阐述它的指导思想。这篇文章会设置为付费文章,并且是整本《React 知命境》唯一的付费文章。在我的同名公众号发布。

当然你也可以不用为此付费,其余的所有免费内容也能够让大家轻松掌握 React。

二、以项目支撑实践

整体思路上,我的表述方式会有很大不同,我会先从整体介绍一个项目应该长什么样,该项目将会成为本书的文章目录与 demo 演示项目。

弱化碎片化基础知识的影响,强化大局整体知识认知,能极大提升新人入门成功率

三、以实践支撑基础

基础知识掌握不难,官方文档读一读就能领会,如何合理的运用到项目中才是我们需要考虑的重中之重。

因此基础知识会与一些小的实践项目结合起来分享,例如 学习了 props,我们就可以尝试封装一个 Icon 基础组件。

这部分内容会和第二部分内容穿插分享,不会严格区分开。大家不用担心因为基础的问题无法吸收第二部分的内容。

四、以基础支撑原理

掌握底层原理能够更有效的合理运用 React。这是我们的核心竞争力之一。

我们能够轻松应对各种

属于重要但不紧急的核心部分。会放在后面去做分析与学习。

五、项目实战

我们会以小程序「码易」为例,为大家分析如何利用 React 实现一个完整的商用项目。

其中囊括了一个完整项目的每个环节:B端、服务端、C端。有利于大家对于工作中项目整体性有一个更为清晰的认知。

书名由来

如何给本书命名,是我一直非常纠结的事情。

不过我的好朋友魔术师卡颂的一个源码公开课分享视频给了我灵感。

在视频中,卡颂将大家对 React 源码的理解分为五个层次。

第一层:掌握术语、基本实现思路
第二层:掌握整体工作流程、局部细节
第三层:掌握关键流程细节
第四层:掌握思想
第五层:???

第五层他并没有明确是什么,因为卡颂觉得自己对于源码的理解,还无法达到那样的境界,不过看他视频里的意思,大概就是探索前端的边界,具备创造能力

React 底层实现也确实愿景宏大,从历史的迭代中我们可以发现,React 开发团队,有一个操作系统梦。

2017 年 React conf 官方大会中,React Fiber 首次官宣,也就意味着,属于操作系统的某些概念已经正式被 React 搬入了前端领域。

在我的认知中,Fiber 一词最早出现在 windows 操作系统,翻译为纤程,是比线程更小的一个任务颗粒。在后续对 React Fiber 架构底层原理的学习过程中,果然也能够逐渐接触到更多操作系统相关的概念,例如任务调度,优先级队列等等。

除此之外,React 团队对于并发模式「Concurrent Mode」也有很深的执念,虽然还处于试验阶段,不过官方团队对于该特性的努力一直没有停止过。也许你在阅读该文章的时候,并发模式已经得到了正式的支持。

我想,这大概就是卡颂想要表达的创造与探索前端边界的境界。

当然,纯粹的源码学习,与运用 React 解决实际问题还是存在一些区别,本书的目的,在于指导大家能够熟练掌握 React 并运用 React 完成具体的项目,从这个角度出发,借鉴我喜爱的小说《将夜》,我将 React 水平分为五个境界。

第一境「初境」:

初步认识 React,知道官网介绍过的大多数基础语法,懂得运用 React 创建组件,理解并懂得如何运用生命周期函数,钩子函数等

第二境「感知」:

感知到组件化开发思维,能够熟练运用 React router,React-redux 等社区维护的三方组件解决实际问题。

第三境「不惑」:

孔子说的四十不惑,已经是一个非常高深的境界。指的是我们在面临选择时,已经不会有疑惑。我们能深刻明白自己需要什么,不需要什么,什么才是最适合我们自己的。

在 React 的实践运用中,我们需要知道如何运用 React 解决不同的需求场景,也会常常遇到大量的决策问题,如何做出最适合当前技术团队的选择,是每一个 React 开发都需要不断思考的事情。因此,这个境界的 React 开发者能够结合实践做出最适合自己团队的技术决策,此为不惑境。

第四境「洞玄」:

洞玄一词,出自道藏《道门大论》中,指的是修为已经达到了通透玄妙的境界。

作为 React 开发者,达到这个境界的人,对 React 的理解已经非常深入,能够基本理解源码的运行逻辑,对 React 的使用已经信手拈来,面对不同的需求都能够轻松拿捏,同时也明白 React 的短板,能做到收放自如,知道如何顺应 React 的底层规则,编写性能更优秀,维护成本更低的优质代码。

第五境「知命」:

我们经历了人生的起起落落,已经深刻明白很多事情并不能按照我们的期望发展,顺其自然,才是天命所归,一切都是最好的安排。能够做到不怨天不尤人。

达到这个境界的 React 开发者,已经具备了丰富的实战经验,在需求定制之初,就能够敏锐的发现哪些需求能做,哪些不能做,哪些需要耗费大量的时间,哪些可以轻松完成。他们在工作中往往具备强大的预判和沟通能力,懂得如何预防各种意外 bug 的产生,出现了问题能快速定位并解决,不会轻易让自己陷入无谓的压力和痛苦之中。

本书不仅仅只是为了让大家学会 React,官方文档足以帮助大家初步了解并运用 React。

我希望《React 知命境》能够帮助 React 学习者具备解决实践场景的能力,并如愿达到知命之境,这正是本书命名的由来,他包含了本书的最终目标。

「React 知命境」 是一本从知识体系顶层出发,理论结合实践,通俗易懂,覆盖面广的精品小册,欢迎关注我的公众号,我会持续更新

点击关注我点击添加我
这波能反杀icanmeetu