React ---生命周期

前言

生命周期是描述react组件从开始到结束的过程。
在每个周期中React都提供了一些钩子函数,对组件通过生命周期给予的钩子函数进行管理

生命周期

生命周期分为三个阶段:

挂载期:一个组件实例初次北创建的过程。
更新期:也被称为存在期,是组件在创建后再次渲染的过程。
卸载期:也被称为销毁期,是组件在使用完后被销毁的过程。

如图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/a43afa55ea8e422581e391dc6ac78486.png

组件的挂载

组件在首次创建后,进行第一次的渲染为挂载期。

1、getDefaultProps()

获取默认的props,也可以用dufaultProps设置组件的默认属性.

2、getInitialState()

设置状态机。
在使用es6的class语法时是没有这个钩子函数的,可以直接在constructor中定义this.state。此时可以访问this.props

3、componentWillMount()

在渲染前调用,整个生命周期只调用一次,此时可以修改state。

4、 render()

react最重要的步骤,用于渲染组件 此时就不能更改state了。

5、componentDidMount()

render第一次渲染之后执行的操作,只调用一次。之后组件已经生成了对应的DOM结构,可以通过this.getDOMNode()来进行访问。

组件的更新

组件更新,指的是在组件初次渲染后,进行了组件状态的改变。

6、componentWillReceiveProps(nextProps)

当父组件更新子组件state时,该方法会被调用

使用componentWillReceiveProps的时候,不要去向上分发,调用父组件的相关setState方法,否则会成为死循环
在组件接收到一个新的 prop (更新后)时被调用。这个方法在初始化render时不会被调用。

7、shouldComponentUpdate(nextProps, nextState)

该方法决定组件state或props的改变是否需要重新渲染组件
在初始化时或者使用forceUpdate时不被调用,在组件接收到新的props或者state时会被调用,返回一个布尔值。
组件接受新的state或者props时调用,可以设置在此对比前后两个props和state是否相同,
如果相同则返回false阻止更新,因为相同的属性状态一定会生成相同的dom树,就不需要新的dom树来和旧的dom树进行diff算法的对比,
可以节省大量性能,尤其是在dom结构相对复杂的时候

8、componentWillUpdata(nextProps, nextState)

组件初始化时不调用,只有在组件将要更新时才调用,此时可以修改state

9、render()

组件渲染

10、componentDidUpdate()

组件初始化时不调用,组件重新渲染后调用该方法,此时可以获取dom节点。

组件的卸载

该过程主要涉及一个 方法,即componentWillUnmount,当组件从DOM树删除的时候调用该方法。

11、componentWillUnmount()

组件将要卸载时调用,一些事件监听和定时器需要在此时清除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值