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

65 阅读2分钟

前言

1.React简介与特性

2.React基础知识

React特性与简介

React是用JavaScript构建快速响应的大型Web应用程序的首选方式之一。它在Facebook和Instagram上表现优秀。

特点

  • 声明式
  • 组件化
  • 跨平台编写

更新流程

Scheduler(调度器)

  • 维护时间切片(类似requestldleCallback)
  • 与浏览器任务调度
  • 优先级调度

Reconciler(协调器)

  • 将JSX转化为Fiber
  • Fiber树对比(双缓存)
  • 确定本次更新的Fiber

Renderer(渲染器)

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

屏幕截图 2023-05-10 153959.png

优点&缺点

优点

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

缺点

  • 大型应用需要配套学习状态管理、路由工具
  • 不适合小型应用,需要用babel处理

React基础知识

组件

Class组件

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

函数式组件

  • 没有生命周期
  • 借助Hook
  • return JSX

函数式相较于Class的优点

  • 代码量骤减,组件干净清爽。
  • 没有复杂的生命周期。
  • 支持自定义hook,逻辑复用方便。

组件和Hook的关系

  • 我们将UT拆成多个独立单元,这些单元组合可以构 成多种视图展示,这些独立单元就是组件。组件相 当于原子。
  • hook贴近组件内部运行的各种概念逻辑,effect、 state、contexts等。hooks更贴切于电子。

Hook规则&原理

只能在React函数中调用Hook

  • 在React函数组件中或自定义Hook中调用
  • 自定义Hook必须以use开头
  • Hook中的state是完全隔离的

React常见API及作用

屏幕截图 2023-05-10 154613.png

React常见Hook及作用

屏幕截图 2023-05-10 154710.png

如何划分组件

_Layout

  • Navbar
  • Main Content
  • Footer
  • Floating Button

_Page

  • Banner
  • CardGroup
  • Slider Group
  • Help Docs
  • Footer Banner

_Component

BlockHeader

  • tag
  • title

BlockWrapper

  • backgroundType
  • animate?:boolean;
  • theme?:"dark""light"

SlideButton

  • onClick(direction,index)
  • icon?:ReactNode
  • animate?:boolean

AnimationWrapper

  • animationName?:string
  • animationDuration?:number

SizeText

  • 通过className控制
  • 封装成组件
  • 安装主题包