React生命周期函数-生命周期回调函数

面试的时候问到了如何运用,这里再回顾一下。

也叫生命周期钩子函数(生命周期钩子)

生命周期大概分成三个阶段:初始化阶段更新阶段卸载

将组件放入页面的过程中,React会在合适的时间进行函数的调用。调用和你写的顺序,是无关的。

挂载(初始化)调用顺序:由ReactDOM.render()触发

1.constructor:构造器,做初始化,一般放在最上方

constructor(props){
    super(props)
//这一行写初始化状态
}

2.componentWillMount:组件将要挂载

componentWillMount(){}

3.render:初始化渲染、状态更新之后,一更新状态,就调用

页面想要出现组件,调用render进行挂载

必须使用的

4.componentDidMount:组件挂载完毕,只执行一次

React承诺,组件挂载完毕,就帮助调用componentDidMount。

做一些初始化的事情:

  1. 开启定时器
  2. 发送网络请求
  3. 订阅消息

卸载组件

componentWillUnmount:组件将要被卸载(可放入清除定时)

React帮助调用componentWillUnmount

由ReactDOM.unmountComponentAtNode()触发

做一些收尾的事情:

  1. 清除定时器
  2. 取消订阅

更新过程

(一)正常更新:调用setState()进行性的更新(建立在改了数据的情况)

1.shouldComponentUpdate:组件是否应该被更新

shouldComponentUpdate(){
    return false
}

setState()更新状态,问一下钩子shouldComponentUpdate应不应该更新页面,true就允许,false阀门关闭,不调用render()

注意:如果不写shouldConponentUpdate,那么默认有这个,且返回值为true,写了就以写的为标准。必须有返回值,且是布尔类型。

2.componentWillUpdate:组件将要更新,如何更新,调用render更新

3.render:调用它去更新

4.componentDidUpdate:更新完毕

(二)forceUpdate   强制更新(不修改就让它更新)

不想对状态有任何的修改,就让它更新。

不受到阀门shouldComponentUpdate的控制,阀门开启关闭,并不影响。直接到componentWillUpdate

按钮写个事件 force,点击按钮,强制更新

//强制更新的回调函数
force = ()=>{
    this.forceUpdate()

}

1.componentWillMount:组件将要挂载

2.render

3.componentDidUpdate

(三)父组件render

前提:父子组件

父组件一旦render,组件将要接受props标签属性(参数),这里的生命周期要写在子组件中。

1.componentWillReceiveProps(写在子组件):组件将要接收新的props的钩子

第一次传的不算,接受新的,以后的才是。也可以接收参数props

2.shouldComponentUpdate

3.componentWillUpdate:组件将要更新,如何更新,调用render更新

4.render:调用它去更新

5.componentDidUpdate:更新完毕

 转运锦鲤~~~~~~~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值