React中的生命周期

it2025-03-15  24

创建阶段的生命周期:

1:static defaultProps ={ }

这是用来给组件,初始化默认的props属性值的。(由于静态属性有一个特点:不new实例,静态属性也能被访问)

2:this.state = { }

这行代码,是写到生命周期函数中的;所以在 new一个组件实例的时候,第一个执行的生命周期函数,就是构造器 constructor ; 因此,在这个阶段,组件的私有状态数据,就已经初始化好了

3:componentWillMount

这是组件创建阶段的 第二个生命周期函数,此时组件将要被第一次渲染;还没有真正在内存中被渲染为一颗 虚拟DOM树

4:render

这是组件创建阶段的,第三个生命周期函数,此时,正在内存中渲染虚拟DOM树;当render函数执行完毕,则内存中的虚拟DOM树,第一次被完整的渲染完毕了

5:compoentDidMount

这是组件创建阶段的 最后一个生命周期函数,此时通过render渲染,在内存中渲染好的虚拟DOM树,已经挂载到了真正的页面上; 所以,这时候,页面才首次被渲染出来;当执行完这个函数,组件就脱离了创建阶段,进入到了运行阶段;

组件中,创建阶段的第一个生命周期函数constructor

作用:为组件初始化私有的数据

constructor (){ super() this.state() }

第二个创建阶段的生命周期函数 componentWillMount

在此生命周期函数中,组件的props和state 数据,都可以被访问了;同时组件上的 自定义实例方法,也可以被正常访问了 相当于vue里的created 此时页面还没有被渲染

componentWillMount(){ }

创建阶段的第三个生命周期函数 render

此时虚拟DOM正在被创建,当render被执行完,我们的虚拟DOM才创建到内存中

render(){}

创建阶段最后一个生命周期函数componentDidMount

此时组件已经第一次 被渲染到页面上 React中的 componentDidMount 就相当于Vue里面的Mounted

componentDidMount(){ }

运行阶段的生命周期:

运行阶段的第一个 生命周期函数 shouldComponentUpdate

使用这个函数, 可以 按需 更新页面;减少不必要的 DOM渲染 注意:在shouldComponentUpdate方法中,如果想要获取最新的state值,千万不要使用 this.state.***,会晚拿到一步你想要的,是上一次的旧数据 要通过形参 nextState进行获取

shouldComponentUpdate(nextProps,nextState){ //**必须**return 一个false或者true false代表不更新 true代表更新 return true }

运行阶段第二个生命周期 componentWillUpdate

组件将要被更新

componentWillUpdate(){ }

运行的第三个生命周期 render

表示又要根据最新的数据, 重新渲染虚拟DOM了

render(){}

运行阶段最后一个生命周期 componentDidUpdate

组件完成了更新 此时页面时最新的

componentDidUpdate(){ }

运行中的生命周期:

componentWillReceiveProps

组件的 props被改变,就会重新触发componentWillReceiveProps

componentWillReceiveProps(nextProps){ //组件将要接收新属性 注意:在这个生命周期函数中,想要获取最新的 props数据,不要使用this.props.***,因为它是上一次的props数据; 最新的应该 通过形参nextProps来获取 }
最新回复(0)