flyingff / react-learning-sample

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

React 学习示例

本仓库包含两个示例,一个是购物车,另一个是搜索用户,都是比较经典的场景。

启动方法

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 中遇到的问题

难度:中高 代码量:中等

局限

  1. 示例在解决问题时仅使用了 React 的能力,没有使用第三方库的能力,因此不能算是 React 生态下的最优实践;
  2. 本仓库注重于思路和重点问题的解决,有很多边角没有优化到,是为了不在不必要的方面增加复杂性而尽量忽略;
  3. 本仓库仅作为入门教材,未涉及许多更复杂的问题。后续本仓库是否更新完全随缘。

About

License:GNU General Public License v3.0


Languages

Language:TypeScript 96.2%Language:CSS 2.0%Language:HTML 1.8%