五一假期就这样悄悄的溜走了,我们又要开始我们的学习工作生活了,快跟着我们青训营的老师学习一下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及应用
React常见Hook及作用