目录

第01章关于本小册

目录

React 是主流前端框架,国内外很多大厂都在用 React。

市面上 React 的资料并不少,但它们或者是讲基础、或者是讲原理,讲如何写组件、组件库的比较少。

诚然,原理很重要,知道 React 源码是怎么运行的能够帮我们更好的掌握 React。但我们绝大多数时间还是在写一个个具体的组件,或者用一些三方的组件库。

你知道 Calendar 组件、Table 和 Form 组件、虚拟列表组件等这些常用的组件是怎么写的呢?或者如果让你写一个组件库,要考虑哪些问题呢?

这些才是我们日常工作用到的,可以写在简历上、面试的时候谈的东西。

市面上讲写组件和组件库的资料比较少,而这些组件实战就是这本小册主打的。

我们会写 Calender、Table、Form、Space、ColorPicker 等各种类型的组件,然后自己实现构建脚本、把它封装成一个类似 ant design、arco design 的组件库。

Calendar 组件:

https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/fc321f45d0eb4c41b9370dcc1b9f2162~tplv-k3u1fbpfcp-jj-mark:0:0:0:0:q75.image#?w=2156&h=1158&s=228529&e=gif&f=32&b=fdfdfd

Message 组件:

https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/23725f6715f9461f859402de7ffb3660~tplv-k3u1fbpfcp-jj-mark:0:0:0:0:q75.image#?w=1272&h=1266&s=387654&e=gif&f=70&b=fefefe

Watermark 组件:

https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9c61ea9bda874c68a65280b11703cd6d~tplv-k3u1fbpfcp-jj-mark:0:0:0:0:q75.image#?w=2656&h=1438&s=3083503&e=gif&f=39&b=fdfdfd

Upload 组件:

https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/66ed4f7cfe6342f88810fd972562d1a6~tplv-k3u1fbpfcp-jj-mark:0:0:0:0:q75.image#?w=1330&h=874&s=466120&e=gif&f=41&b=fcfcfc

React 的流行不只是因为 React 本身,很大一部分也是因为它的生态,React 的生态包罗万象,各种解决方案都有。

我们还会学习 CSS Modules、CSS in JS、Tailwind 等样式管理方案,学习 react-spring、react-transition-group、framer-motion、react-motion 等动画库、学习 react-dnd 来做拖拽,还有 redux、jotai、zustand 等状态管理库。

写过各种组件、学完 React 生态的库之后,我们也会深入下源码,了解 React 的渲染流程,各种 api 的实现原理,并且实现一个简易版 React。

此外,我们还会做很多实战项目:

比如 playground:

https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/52a109156fe64a50908195131b8329f5~tplv-k3u1fbpfcp-jj-mark:0:0:0:0:q75.image#?w=2858&h=1264&s=961512&e=gif&f=70&b=fefefe

低代码编辑器:

https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/747cc9a904f64c47b2617a25e3dfa77e~tplv-k3u1fbpfcp-jj-mark:0:0:0:0:q75.image#?w=2744&h=1204&s=239464&e=png&b=d4dcf5

React Flow 项目:

https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/4330865bfb83401dbf81ac40945af092~tplv-k3u1fbpfcp-jj-mark:0:0:0:0:q75.image#?w=2870&h=1536&s=1746933&e=gif&f=70&b=fbfbfb

如何掌握好 React 呢?

我觉得就是这两方面:一方面是 React 之上,学会写各种组件,并且能把这些组件封装成一个组件库、学习各种 React 相关的库。一方面是 React 之下,能够自己调试源码,知道 React 是怎么运行的,能够实现一个简易版 React。

这两方面都掌握到一定程度,React 技术栈就算是通关了。