React是用于构建用户界面的JavaScript库
可以认为是MVC中的V(MVC: 模型model-视图view-控制器controller)
虚拟DOM(Virtual DOM)
DOM(文档对象模型Document Object Model)
React通过Diff算法找出虚拟DOM和真实DOM之间的差异,仅渲染修改的这一部分变化,减少了DOM的重绘,提高了效率
JSX语法
是一种应用于React中的JavaScript和XML混写的语法
约定标签中首字母小写的是html标签,大写的是组件,所有标签必须闭合
JSX表达式用{ }括起来
组件状态 state
每个React组件都有一个状态属性state,是js对象,可定义属性来保存值
若状态发生变化则触发UI重新渲染,state仅供组件内部使用
可用setState()方法(不适合在render或constructor中使用)修改state,或直接修改this.state
属性 props
props是组件标签中的属性,是公有属性,组件外也可以访问
构造器 constructor
类似init初始化函数,ES6的构造器需传入参数props,并传递给父类super(props)
组件生命周期
三个状态:
Mounting:已插入真实DOM
Updating:正在被重新渲染
Unmouting:已移出真实DOM
生命周期函数:
componentWillMount 渲染前执行(先执行constructor)
componentDdMount 渲染后执行
componentWillRevieveProps(nextProps) props改变时执行
shouldComponentUpdate(nextProps, nextState) props,state改变时执行
componentWillUpdate(nextProps, nextState) should返回True则执行
componentDidUpdate(prevProps, prevState) 组件更新完成后执行
componentWillUnmount 从DOM中移除组件时执行
无状态组件
也叫函数式组件,通过函数定义组件,不需要state和生命周期函数时使用。
需要提供一个参数props,返回一个React元素