关于vue生命周期理解

在开发过程中总是遇到数据不能正常展示,有时是因为dom结构未生成等原因,因此此时对于生命周期的理解非常重要,
他可以帮助我们在合适的时机编写需要的业务逻辑

vue实例的生命周期

beforeCreate

vue实例创建之前,此时vue实例的data属性与dom结构都是未定义状态,此时均不可使用

  beforeCreate:function(){
    console.log('即将创建');
    console.log(this.$data);
    console.log(this.$el);
  }

输出:

  即将创建
  undefined
  undefined

create

beforeCreate之后的状态是create,此时vue实例的data属性已经创建,但是dom结构还是是未定义状态,因此this.$el依旧是ubdefined

  create:function(){
    console.log(this.$data);
    console.log(this.$el);
  }

输出:

  Object对象
  undefined

beforeMount

vue实例中的data数据挂载之前,此阶段dom结构创建完毕,因此$el存在了,但是vue实例的data数据还没有挂载到页面中

  beforeMount(){
    console.log('即将挂载');
    console.log(this.$el);
  }

输出:

  即将挂载
  <div id="app">{{name}}</div>

mounted

vue实例的data数据挂载完毕阶段,此时{{name}}被渲染

  mounted:function(){
    console.log('挂载完毕');
    console.log(this.$el);
  }

输出:

  挂载完毕
  <div id="app">name的真实值</div>

beforeUpdate

vue实例创建渲染完成后,此时vue实例的data数据发生变更,此时需要重新渲染页面,即重新挂载新的data数据,
在重新渲染数据之前触发beforeUpdate,$refs可以用于获取之前的属性值,
{{name}}原有值:’name的真实值’
{{name}}最新值:’name的最新值’

  beforeUpdate:function(){
    console.log('数据发生变更,重新渲染页面');
    let name = this.$refs.app.innerHTML;
    console.log('name:'+name);
  }

输出:

  数据发生变更,重新渲染页面
  name的真实值

可以用于在发生变化重新渲染前进行数据处理

updated

可以用于编写渲染完成时的逻辑

  updated:function(){
    console.log('数据发生变更,重新渲染页面完成');
    let name = this.$refs.app.innerHTML;
    console.log('name:'+name);
  }

输出:

  数据发生变更,重新渲染页面完成
  name的最新值

beforeDestroy

调用实例的destroy( )方法可以销毁当前的组件,在销毁前,会触发beforeDestroy钩子,
销毁前还可使得视图发生变更

  beforeDestroy:function(){
      //销毁前需要处理的内容
  }

destroyed

成功销毁之后,会触发destroyed钩子,此时该实例与其他实例的关联已经被清除,它与视图之间也被解绑。
此时在操作实例视图也不会再发生变更

  destroyed:function(){
    console.log('销毁实例');
  }

输出:

  销毁实例

actived

keep-alive组件被激活的时候调用

deactivated

keep-alive 组件停用时调用

var vue = new Vue({
        el: "#app",
        data: {
            name: 'name的真实值',
        },
        methods: {

        },
        mounted:function(){
        }
})
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三知之灵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值