react:用于构建用户界面的js库(将数据渲染为html视图开源的js库)
react特点:
1.采用组件化模式,命令式编码,提高开发效率及组件复用率
2.在react native中可以使用react语法进行移动端开发
3.使用虚拟dom+优秀的diffing算法
学react前需要会的js知识:
判断this指向
class类
es6语法规范
npm包管理器
原型,原型链
数组常见方法
模块化
React官网:react.docschina.org/
React简介与特性
作用:构建用户界面的js库
特点:声明式,组件化(把页面分割成小组件),跨平台编写
React是用js构建快速响应的大型web应用程序的首选方式之一。在Facebook和Instagram上表现优秀
等待资源加载时间(一次加载太多资源导致/网络请求慢/资源加载失败 )和大部分情况下浏览器单线程执行(js执行时间过长/)是影响web性能的两大主要因素
更新流程
Scheduler(调度器)
维护时间切片
优先级调度
Reconciler(协调器)
与浏览器任务调度
将jsx转化为fiber
fiber树对比(双缓存)
确定本次更新的fiber
Renderer(渲染器)
渲染器用于管理一颗React树, 使其根据底层平台进行不同的调用
用React开发web应用
架构:打包配置:JSX→babel→JS加载优化和错误降级
路由:保证页面与URL同步
UL:复用UL→组件→页面
状态:多页面多组件共享信息
一个组件的开发
数据:定义state,Ref保存值
通信:props父子通信
UL:通过Ref获取到DOM
性能:函数用usecallback,值或计算用useMemo,组件包裹memo
组件 class组件:劣于函数式组件 函数式组件:代码量骤减,没有复杂的生命周期,支持自定义hook Hook规则: 只能在最顶层使用Hook 只能在React函数中调用hook