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

48 阅读3分钟

五一假期就这样悄悄的溜走了,我们又要开始我们的学习工作生活了,快跟着我们青训营的老师学习一下react的相关内容吧!老规矩,由于本人小白,对于某些专业名词不太懂的,有出现打错的现象,请各位不吝赐教,谢谢各位了!

一、react的简介与特性

React是用于构建用户界面的JavaScript库

用户界面也可以简单理解为视图,因此react的主要作用构建和操作视图

1、react特点

.声明式,开发者只需要调用即可,不需要像命令式编程那样一步一步告诉计算机需要干什么

.组件化,把页面拆分为多个组件,其自身拥有状态,也可以由外部传入属性,组件组合可以达到复杂的UI

.跨平台编写:一次学习,跨平台编写,通过渲染器

  2、react哲学(Thinking In React)

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

快速响应的瓶颈:

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

3、浏览器线程执行

JS加载阻塞浏览器的渲染,当某个JS加载时间过长,超过浏览器的渲染帧,将无时间进行页面布局和UI绘制,将会出现掉帧

React会将繁重的任务拆分,将多个新任务放在帧与帧之间的空闲时间进行处理,这样将不会阻塞UI,这种帧与帧之间的间隔,成为时间切片,借用了虚拟DOM的概念,不是每一帧都去操作真实的DOM,而是操作虚拟DOM,在所有的任务都执行完毕后,将根据虚拟的DOM树生成一个新的真实DOM树

Scheduler (调度器)

维护时间切片

与浏览器任务调度:有空闲时间的时候将操作权交给react,当操作时将操作权交还给浏览器

优先级调度:将任务分出轻重缓急

Reconciler(协调器)

将JSX转化为Fiber

Fiber 树对比(双缓存):对于一次浏览器的更新请求,可能会有多个时间切片任务,不是每一个小任务完成之后,都会将fiber树给渲染器

确定本次更新的Fiber:在整个fiber树更新好之后再进行更新

Renderer(渲染器)

渲染器用于管理―棵 React树,

使其根据底层平台进行不同的调用。

优点

快速响应:Fiber

组件化:复用性强

声明式编程

跨平台:只需修改渲染器

缺点

大型应用需要配套学习状态管理、路由工具

不适合小型应用,需要用babel处理

 

 

二、react基础

1、用react开发web应用--操作

架构:打包配置︰J.SX -> babel ->J.S 加载优化和错误降级。

路由:React Router向应用中快速地添加视图和数据流,保持页面与URL间的同步。

UI: 可复用UI->组件 ->页面。可复用逻辑抽离成hook。

状态:多页面多组件共享信息redux & context

React常见API及应用

image.png React常见Hook及作用

image.png