本仓库包含两个示例,一个是购物车,另一个是搜索用户,都是比较经典的场景。
yarn && yarn dev
路径:<root>/src/ShoppingCart
模拟电商购物场景,包含一个列表、一个添加按钮和一个总计组件,共有三个版本:
v1: 静态组件 v2: 基本功能组件,用于熟悉状态分配 v3: 增加商品组合功能,引出对于 reducer、单向数据流模式等内容的思考
难度:入门 代码量:少 - 中等
路径:<root>/src/SearchUser
模拟搜索人员添加的场景,包含一个输入框、一个搜索人员列表和一个已选人员列表。
初级教程包含三个版本:
v1: 静态组件 v2: 基本功能组件,演示这种写法具有的问题 v3: 演示使用标记法规避问题
难度:入门 - 中等 代码量:少 - 中等
进阶教程包括三个进阶解决办法:
v4: 使用 Suspense 配合 React.lazy 解决问题,但是会遇到组件生成和挂载过多的问题 v5: 使用 Suspense 配合自定义数据结构解决生成过多组件的问题,但搜索结果闪烁较多体验不佳 v6: 使用 Suspense 配合递归组件解决 v5 中遇到的问题
难度:中高 代码量:中等
- 示例在解决问题时仅使用了 React 的能力,没有使用第三方库的能力,因此不能算是 React 生态下的最优实践;
- 本仓库注重于思路和重点问题的解决,有很多边角没有优化到,是为了不在不必要的方面增加复杂性而尽量忽略;
- 本仓库仅作为入门教材,未涉及许多更复杂的问题。后续本仓库是否更新完全随缘。