react生命周期

组件的生命周期可分成三个状态:

  1. Mounting:已插入真实 DOM(挂载)
  2. Updating:正在被重新渲染 (更新)
  3. Unmounting:已移出真实 DOM (卸载)

1.挂载

    constructor()
    static getDerivedStateFromProps()
    render()
    componentDidMount() 

import React, {Component} from 'react'
export default class One extends Component{
    constructor(){
        super();
        this.state = { }
    }
    render(){
        return (
            <div></div>
        )
    }
    componentDidMount(){ }
}
// react16.0+之后新增的特性
//方法的作用:根据外部属性,修改内部的state值
// 返回值如果为null,就不需要修改
// 返回值如果为对象,对象中的值会合并到现有的state中。
// 方便外部属性转变为内部属性,但是注意不能获得对象的引用,而要进行深拷贝
// 方便进行属性计算。
One.getDerivedStateFromProps = function(props, state){
    console.log('getDerivedStateFromProps...');
    // console.log(rest);
    // return null;//不需要修改
    return { }
}

2.更新
    static getDerivedStateFromProps()
    shouldComponentUpdate()
    render()
    getSnapshotBeforeUpdate()
    componentDidUpdate()

import React, {Component} from 'react'

export default class One extends Component{

    constructor(){
        super();
        this.state = {  }
    }
    
    render(){
        return (
            <div> </div>
        )
    }

    //dom结构是否应该更新,不管返回值为true还是false数据都会更新
    shouldComponentUpdate(newProps, newState){
        
    }
    // react16.0+新增的 
    //dom结构更新前的最后一次函数的执行
    // 返回值会传入componentDidUpdate中
    // 在这个方法中可以进行判断componentDidUpdate是否需要做相应dom结构的变化。
    getSnapshotBeforeUpdate(oldProps, oldState){
        return false;
    }
    componentDidUpdate(oldProps, oldState, snapshot){ }
}
One.getDerivedStateFromProps = function(props, state){
    return { }
}

3.卸载

    直接加这个方法。
    componentWillUnMount()
    移除监听 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值