一、React简介与特点
(一)React简介
React:用于构建用户界面的javascript库。
(二)React特点
- 声明式:React采用声明式编程,使代码更易于理解和调试。举例:React 的 JSX 语法。它允许你直接在 JavaScript 代码中编写类似 HTML 的标记,这样可以更直观地描述组件的结构和内容。
- 组件化:React使用组件化思想,将复杂的系统拆分成多个功能模块,便于重复利用。
- 跨平台编写:React可以在多个平台上使用,包括Web、移动端和桌面应用程序。举例:使用 React Native 来构建 iOS 和 Android 应用程序。你可以使用相同的代码库来构建两个平台的应用程序,而不需要为每个平台单独编写代码。
(三)React哲学
React 用 JavaScript 构建 快速响应和大型 Web 应用程序的首选方式之一。它在 Facebook 和 Instagram 上表现优秀。
3.1 lazy和suspense
React 解决等待资源加载的问题,可以使用 React.lazy 和 React.Suspense 来实现代码分割和按需加载。这样可以减少首次加载时需要下载的资源数量,从而提高页面加载速度。
浏览器线程执行时,由于 JavaScript 是单线程的,所以在执行长时间运算时会阻塞页面渲染。React 通过异步更新和时间切片来解决这个问题。异步更新可以让 React 在空闲时间执行更新操作,而不会阻塞页面渲染。时间切片则可以将长时间运算拆分成多个小任务,在空闲时间依次执行,从而避免阻塞页面渲染。
3.2更新流程
React 的更新流程包括调度器(Scheduler)、渲染器(Renderer)和协调器(Reconciler) 三个部分。
- 调度器负责确定何时执行工作,它可以将工作拆分为多个小块,以便在执行工作的同时保持浏览器的响应能力。
- 渲染器负责将 React 组件渲染到目标平台,例如 DOM、Canvas 或原生移动应用。不同的渲染器有不同的实现方式,但它们都遵循相同的模式。
- 协调器负责比较新旧两棵树,并计算出需要进行的最小更改。这个过程称为协调(Reconciliation)。Reconciler 起作用的阶段我们称为 render 阶段,Renderer 起作用的阶段我们称为 commit 阶段。
在 React 中,最多同时存在两棵 fiber tree。一棵是当前屏幕上显示内容对应的 fiber tree,称为 current fiber tree;另一棵是正在内存中构建的 fiber tree,称为 workInProgress fiber tree。workInProgress fiber tree 构建完成后,React 会使用它直接替换 current fiber tree。
3.4 React_优缺点
优点:
1、快速响应:Fiber
2、组件化:复用性强
3、声明式导航
4、跨平台:只需修改渲染器
缺点:
需要使用 JSX 语法,学习曲线较陡峭。此外,React 不适合单独做一个完整的框架,做大型项目需要和其他框架组合使用。