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

72 阅读2分钟

React简介与特性

特点:声明式、组件化、跨平台编写

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

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

浏览器线程执行:JS执行 浏览器计算样式布局 UI绘制(异步更新、时间切片、React Fiber)

更新流程
  • Scheduler调度器:维护时间切片、与浏览器任务调度
  • Reconciler协调器:将JSK转化为Fiber
  • Renderer渲染器:用于管理一颗React树,使其根据底层平台进行不同的调用。 image.png

优缺点总结

优点

  1. 快速响应:fiber
  2. 组件化:复用性强
  3. 声明式编程
  4. 跨平台:只需要修改渲染器

缺点:大型应用需要配套学习状态管理,路由工作;不适合小型应用,需要babel处理。

用React开发web应用

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

React组件

  • 数据:通过定义state操作视图
  • 通信:props父子组件通信;context&redux组件信息共享
  • UI数据决定视图
  • 性能:函数使用useCallback;值或者计算使用useMemo;组件包裹memo

hook规则& 原理

  • 只能在最顶层使用hook

React怎么知道那个state对应哪个useState?

答:React靠的是Hook调用的顺序。

  • 只能在React函数中调用hook。自定义hook必须以use开头;Hook中的state是完全隔离的。

常见的hook及其作用

image.png

业务场景案例

如何划分组件

  • Layout Navbar---- Main Content Footer Footer Floating BUtton
  • Page ----- Banner CardGroup Slider Group Help Docs Footer Banner
  • Component-----BlockHeader BlockWapper SliderButton SizeText AnimationWrapper
父组件给子组件通信

知道子组件的表现,直接通过props传递即可。

image.png 传递信息通过callback

组件间共享信息

image.png

image.png

组件挂载位置

通过createPortal改变了组件真实的渲染位置, 一个从portal内部触发的事件会一直冒泡至包含React树的祖先,即便这些元素并不是DOM树中的祖先。

如何进行逻辑复用

实现一个useRequest image.png

课程总结

image.png