react 生命周期

生命周期 无状态组件没有生命周期钩子函数
实例期
constructor(){}
存在期
componentWillMount(){}组件将要加载
componentDidMount(){}组件加载完成
componentWillUpdate(){}组件将要更新
componentDidUpdate(){}组件完成更新
shouldComponentUpdate(){}组件可以更新
componentWillReceiveProps(){}组件将要接受props参数
render(){}
销毁期
componentWillUnmount(){}销毁组件

组件初始化生命周期的执行过程
constructor
componentWillMount
render
componentDidMount

组件内部状态(state)被改变生命周期的执行过程
shouldComponentUpdate(){}
componentWillUpdate(){}
render(){}
componentWillUpdate(){}

组件外部状态(props)被改变生命周期的执行过程
componentWillReceiveProps(){}
shouldComponentUpdate(){}
componentWillUpdate(){}
render(){}
componentWillUpdate(){}


是否允许更新组件 必须有返回值,返回布尔,如果没有声明该钩子,默认返回true
shouldComponentUpdate(nextProps,nextState){
if(nextState.lists.length===this.state.lists.length){
console.log('component will not rerender');
return false;
}
return true;
}

事件
合成 ,原生
this.setState({
//修改的值,回调函数
},()=>{
console.log(this.state.lists);
})
console.log(this.state.lists);


通过es6箭头函数,解决this指向不正确
clickHandler=()=>{ }
this.clickHandler=this.clickHandler.bind(this)
onClick={()=>{this.clickHandler}}
onClick={this.clickHandler.bind(this)}

 

 


 

posted @ 2018-12-28 20:15  maps..xy  阅读(106)  评论(0编辑  收藏  举报