React基础与实践 |青训营笔记

77 阅读3分钟

React简介与特性

用于构建用户界面的JavaScript库,构建和操作视图

特点:

  • 声明式:声明式编程是告诉机器想要什么信息,机器就返回什么信息,偏重结果。
  • 组件化:组件化是指复杂系统时将多个功能模块拆分、重组的过程。
  • 跨平台编写:从 React 到 Vue ,虚拟 DOM 为这两个框架都带来了跨平台的能力

React哲学

React是用JavaScript构建快速响应的大型Web应用程序的首选方式之一

等待资源加载时间和大部分情况下浏览器单线程执行时影响web性能的两大主要原因

等待资源加载浏览器线程执行
React.Lazy异步更新
React.Suspense时间切片
ErrorBoundaryReact Fiber

更新流程

Scheduler 调度器:维护时间片,与浏览器任务调度,优先级调度

Reconciler 协调器:将JSX转化为Fiber Riber树对比(双缓存) 确定本次更新的Fiber

Renderer 渲染器:渲染器用于管理一棵React树,使其根据底层平台进行不同的调用

优点:

  • -快速响应Fiber
  • -组件化:复用性强
  • -声明式编程
  • -跨平台:只需修改渲染器

缺点: 还要学习状态管理,路由工具 不适合小型应用,需要用babel处理

React基础知识

1.用React开发web应用

架构: -打包配置:JSX -> babel -> JS -加载优化和错误降级 路由:React Router 向应用中快速地添加视图和数据流,保持页面与URL间的同步 状态: -多页面多组件共享信息 -redux&context UI: -可复用UI -> 组件 -> 页面 -可复用逻辑抽离成hook

2.组件开发

定义:应用程序中根据UI结构划分的不同共能的代码的集合 分类: 基础组件:指input、button这种基础标签,以及antd封装过的通用UI组件 业务组件:由基础组件组合成的业务抽象化UI。例如公司部门信息的下拉框 区块组件:由基础组件组件和业务组件组合成的UI块 页面组件:展示给用户的最终页面,一般就是对应一个路由规则

数据: 通过定义state操作视图 Mount时获取数据更新state Ref保存与视图无直接关系的值 unMount前清空Ref 通信: props 父子组件通信 context & redux 组件信息共享 性能: 函数使用 useCallback 值或者计算使用useMemo 组件包装memo UI: 数据决定视图 通过Ref获取到DOM

3.Class组件

继承 + 构造函数 this 生命周期 render方法

4.函数式组件:

没有生命周期 借助Hook return JSX

5.Hook规则&原理

只能在最顶层使用Hook 只能在React函数中调用Hook 在React函数组件中或自定义Hook中调用 自定义Hook必须以use开头 Hook中的state是完全隔离的

总结

函数式组件注意事项: 1.组件名称须以大写字母开头 2.必须有返回值 1.class组件注意事项:类名必须以大写字母开头 2.extends是一个关键字,用来实现类之间的继承。类组件应该继承 React.Component 父类,从而使用父类中提供的方法或属性。 3.类组件必须提供 render 方法,render 方法必须有返回值,表示该组件的 UI 结构。render会在组件创建时执行一次