美文网首页
react生命周期(包含16.8.6版本)

react生命周期(包含16.8.6版本)

作者: Mr无愧于心 | 来源:发表于2019-08-05 10:48 被阅读0次

    在组件实例被创建和插入DOM中被调用

    1. constructor()
    类初始化调用,可用来初始化stete
    
    1. static getDerivedStateFromProps(nextProps, prevState)
    组件实例化后和接受新属性时将会调用getDerivedStateFromProps。
    用于替换componentWillReceiveProps,可以用来控制 props 更新 state 的过程;
    它返回一个对象表示新的 state;如果不需要更新,返回 null 即可。
    
    注意,如果父组件导致了组件的重新渲染,即使属性没有更新,这一方法也会被调用。
    如果你只想处理变化,你可能想去比较新旧值。
    
    
    1. componentWillMount()(将要废弃)
    render前,所以setState不会重新渲染,服务端渲染唯一调用,推荐用constructor代替之
    
    1. render()
    渲染jsx
    
    1. componentDidMount()
    componentDidMount()在组件被装配后立即调用。
    初始化使得DOM节点应该进行到这里。
    若你需要从远端加载数据,这是一个适合实现网络请求的地方。
    在该方法里设置状态将会触发重渲。
    

    更新

    1. componentWillReceiveProps()(将要废弃)
    已挂载组件接收到新props触发
    
    1. static getDerivedStateFormProps()
    组件实例化后和接受新属性时将会调用getDerivedStateFromProps。
    用于替换componentWillReceiveProps,可以用来控制 props 更新 state 的过程;
    它返回一个对象表示新的 state;如果不需要更新,返回 null 即可。
    
    注意,如果父组件导致了组件的重新渲染,即使属性没有更新,这一方法也会被调用。
    如果你只想处理变化,你可能想去比较新旧值。
    
    1. shouldComponentUpdate(nextProps, nextState)
    使用shouldComponentUpdate()以让React知道当前状态或属性的改变是否不影响组件的输出。
    
    如果存在性能问题:请使用pureComponent代替component
    除了为你提供了一个具有浅比较的shouldComponentUpdate方法,PureComponent和Component基本上完全相同。
    当props或者state改变时,PureComponent将对props和state进行浅比较。
    另一方面,Component不会比较当前和下个状态的props和state。
    因此,每当shouldComponentUpdate被调用时,组件默认的会重新渲染。
    
    1. componentWillUpdate()(将要废弃)
    组件改变之前执行
    
    1. getSnapshotBeforeUpdate(prevProps, prevState)
    用于替换 componentWillUpdate,
    该函数会在update后 DOM 更新前被调用,
    用于读取最新的 DOM 数据,
    返回值将作为 componentDidUpdate 的第三个参数
    
    1. componentDidUpdate(nextProps, nextState)
    componentDidUpdate()会在更新发生后立即被调用
    

    卸载

    1. componentWillUnmount()
    卸载组件,可以用来清除计时器,解绑事件
    

    相关文章

      网友评论

          本文标题:react生命周期(包含16.8.6版本)

          本文链接:https://www.haomeiwen.com/subject/ylfzrctx.html