react生命钩子的执行顺序
2020-01-13 23:58
357 查看
React的生命周期钩子跟Vue有些相似
初始化阶段
Vue: beforeCreate、created、beforeMount、mounted
React:constructor、componentWillMount【旧】、render、componentDidMount
运行阶段:【可能会执行多次】
Vue:beforeUpdate、updated
React:
state变化:shouldComponentUpdate、componentWillUpdate【旧】、render、componentDidUpdate
props变化:componentWillReceiveProps【旧】、shouldComponentUpdate、componentWillUpdate【旧】、render、componentDidUpdate
卸载阶段:
Vue:beforeDestory destoryed
React:componentWillUnmount
以上带【旧】的都是即将废除的钩子
父组件传给子组件中的数据发生改变
子组件内部渲染数据发生改变,生命钩子的执行顺序
页面有dom销毁,生命钩子执行顺序
父组件
import React,{Component} from "react"; // 导入子组件 import Old from '../life/Old' class Index extends Component{ state={ age:18, isShow:true } render(){ return <div> <Old age={this.state.age}/> <button onClick={()=>{this.setState({age:this.state.age+1})}}>点我改变</button> <button onClick={()=>{this.setState({isShow:false})}}>点我隐藏div</button> {this.state.isShow && <Old />} </div> } } export default Index
子组件
import React ,{Component} from "react"; export default class Old extends Component{ constructor(props){ super() console.log('----constructor---'); this.state={ name:'xi' } } componentWillMount(){ console.log('---componentWillMount----'); } render(){ console.log('-----render----'); return <div> 这是一个寂寞的天 <p>{this.props.age}</p> <button onClick={()=>{this.setState({name:'小可爱'})}}>点击改name</button> <p>name:{this.state.name}</p> </div> } componentDidMount(){ console.log('---componentDidMount---'); } componentWillReceiveProps(nextProps){ console.log('----componentWillReceiveProps---'); console.log(nextProps); } shouldComponentUpdate(){ console.log('---shouldComponentUpdate----'); return true //为false将不改变视图层,后面的钩子都不执行 } componentWillUpdate(){ console.log('+---componentWillUpdate--'); } componentDidUpdate(){ console.log('---componentDidUpdate---'); } componentWillUnmount(){ console.log('----componentWillUnmount----'); } }
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- vue中各选项及钩子函数执行顺序详解
- 一周乱弹(1,bootstrap模态框关闭钩子方法2,eclipse debug 临时增加语句执行3,js isFinite()方法4,js中获取request里的值5,js ajax执行顺序
- React子父组件生命周期函数执行顺序
- Vue的学习总结自测(三)—— vue生命周期、Vue 的父组件和子组件生命周期钩子函数执行顺序、生命周期内调用异步请求
- React组件的生命周期及执行顺序
- vue生命周期中,钩子函数执行顺序
- vue生命周期中,钩子函数执行顺序
- ASP.NET 页面生命中的关键事件的执行顺序
- vue中各选项及钩子函数执行顺序
- 【React】 12课 react的生命周期函数执行顺序详解
- VUE生命周期中的钩子函数及父子组件的执行顺序
- 附实例!图解React的生命周期及执行顺序
- ReactNative踩坑日志——使用async/await语法解决网络请求的异步导致的指令执行顺序错乱问题
- React组件生命周期-初始化阶段的函数执行顺序
- 附实例!图解React的生命周期及执行顺序
- java中的代码块执行顺序2
- Java异常----try、catch和finally块中的return执行顺序
- Flash代码执行顺序.txt
- SQL逻辑查询语句执行顺序
- shellscript 06 命令执行顺序