美文网首页
react 运行时生命周期

react 运行时生命周期

作者: 走走停停再走 | 来源:发表于2019-07-07 14:06 被阅读0次

第一篇文章我们讲了react加载时的生命周期,上一篇文章讲了子组件相关的问题,这次我们将说一说关于运行时的生命周期。何为运行时生命周期,既我们执行某个操作的时候,到子组件更新这个过程,react做了哪些事情。运行时生命周期主要分为shouldComponentUpdate、componentWillUpdate、componentWillReceiveProps、componentDidUpdate四个生命周期。下面我们将依次揭开他们的面纱。

一、shouldComponentUpdate

shouldComponentUpdate顾名思义,既是当前操作是否合法,有一个返回值,当为true时将会执行,当返回false将阻止此次操作。对我来说我觉得有点像我们平时写a标签或则form表单的时候,阻止其默认行为一样。在react中用的最多的就是在登录检验的时候,可以作为数据验证。同时,他接受两个参数,一个将要更新后的props,以及一个更新后的state,代码如下。

shouldComponentUpdate(nextProps, nextState) {
    console.log(nextProps);
    console.log(nextState);
    console.log('运行时的状态-1');
    return true;
 }

二、componentWillUpdate

这个周期同加载时的componentWillMount周期一样,可以作为一些数据的初始化。介于shouldComponentUpdate以及componentWillReceiveProps之间,一般用的不多,在这里就不过多说明。

三、componentWillReceiveProps

componentWillReceiveProps生命周期更多的是用于对组件进行数据的验证,它可以接受来自更新后的props,以及state。同shouldComponentUpdate有点像,但是不同的是,componentWillReceiveProps不能阻止当前操作的执行,只是起到了一个检测的作用。

componentWillReceiveProps(nextProps) {
    console.log(nextProps,' 可用着数据检查');
}

四、componentDidUpdate

componentDidUpdate既当前操作已经完成,可以用在动画上,已达到更人性化的效果。当然,也可以作为销毁一些东西做处理。

整个运行的生命周期先后示意图如下图所示。


1111.png

同时,我在这里做了一个类似一些完整点赞功能的实现,通过配合运行时的生命周期componentWillReceiveProps,对其子组件的state进行改变,从而返回不同的试图,代码如下。

class Btn extends React.Component {
    constructor(props) {
    super(props);
        this.state = {
            show: true
        }
    }
    componentWillReceiveProps() {
        this.setState({
              show: false
        })
    }
    render() {
        if(this.state.show) {
            return (
                <button onClick={this.props.addCount} >点击数字加1</button>
            )
        } else {
            return (
                <span> 已经计算 </span>
            )
        }
    }
}
<p><Btn addCount={this.addCount} /></p>

实际应用中还是有很多地方可用的,这里只是一个简单的例子。
源码地址:https://github.com/jiosers/react-study/blob/master/react/index3.html

相关文章

  • React native 生命周期的思考

    一直做React native的小项目,接触到了react native 的相关的生命周期,大概可以包括以运行时为...

  • react生命周期总结(旧、新生命周期及Hook)

    1 理解生命周期 什么是react生命周期呢?当我们使用各种框架开发程序时,当这个框架启动、程序刚运行时、各个页面...

  • React概念图

    React概念图 React组件生命周期概念图 参考文档:React入门教程 组件生命周期React:组件生命周期...

  • React组件的生命周期

    React组件的生命周期分为三个阶段: 组件初始化 Mounting 组件运行时 Updating 组件卸载时 U...

  • React基础篇之组件的生命周期

    引出生命周期 react生命周期(旧) react生命周期(新) getSnapshotBeforeUpdate的...

  • react 运行时生命周期

    第一篇文章我们讲了react加载时的生命周期,上一篇文章讲了子组件相关的问题,这次我们将说一说关于运行时的生命周期...

  • React生命周期

    React v16.0前的生命周期 React v16.4+ 的生命周期图 React v16.9后这些生命周期钩...

  • React生命周期

    React16.3.0之前生命周期 创建期: 运行时: props发生变化时 state发生变化时 卸载时 Rea...

  • React v16 生命周期

    React 16 生命周期 React 16.3 新增的生命周期方法 逐渐废弃的生命周期方法: 一般将生命周期分成...

  • 学习并实现react (4)

    实现生命周期 生命周期介绍 React 生命周期图 React 子组件在父组件下的生命周期流程 实现 compon...

网友评论

      本文标题:react 运行时生命周期

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