1. 组件实例化阶段
defaultProps:
设置组件的初始属性值,比如设置默认 Color,width 等,可以在通过 this.props 获取相应的值
constructor(props):
这里通过 this.props 可以获取 defaultProps 设置的默认属性值,同时这里用于初始化控件的可变化的变量,通过 this.state 设置变量的初始值,通过 this.setState() 函数修改变量的值,调用 render() 函数重新渲染页面,得到新的页面
componentWillMount:
组件将要被加载到视图之前调用
render(): 第一次被调用,用于渲染页面
componentDidMount:
在调用了 render 方法,组件加载完成并被成功渲染出来之后,所要执行的后续操作,一般都会在这个函数中进行,比如经常要面对的网络请求等加载数据操作,因为 UI 渲染是异步的,所以在这个函数里面进行网络请求,能够避免出现 UI 错误。
2. 组件运行时阶段
组件的属性 prop 和状态 state 任何一个改变都可能会触发 render() 函数渲染页面
componentWillReceiveProps:
指父元素对组件的 props 进行了修改
shouldComponentUpdate
一般用于优化性能,通过业务逻辑判断返回 true 或 false,来决定页面是否进行重新绘制,默认返回 true, 执行后面两个周期函数
componentWillUpdate:
组件刷新前调用
componentDidUpdate:更新后
3. 页面卸载页面:
componentWillUnmount
一般用于清理工作,比如移除事件监听,取消定时器等
4. 生命周期函数调用次数
特别提示:
更新 state 必须使用 setState() 函数,setState 是一个异步的函数:setState(update,[callback])setState() 不是立刻更新组件。其可能是批处理或推迟更新。这使得在调用 setState() 后立刻读取 this.state 的一个潜在陷阱。代替地,使用 componentDidUpdate 或一个 setState 回调(setState(updater, callback)),当中的每个方法都会保证在更新被应用之后触发。
参考文档:https://react.docschina.org/d…
个人网站:https://wayne214.github.io