vue生命周期有哪些,以及区别

Vue生命周期总共分为8个阶段:
创建前后、挂载前后、更新前后、销毁前后
①Vue生命周期第一个阶段:数据挂载阶段
创建前:获取不到数据,也拿不到DOM元素;
创建后:可以获取数据,但拿不到DOM元素。
②Vue生命周期第二个阶段:模板渲染阶段
加载前:可以拿到DOM元素,但是DOM元素没有被解析;
加载后:可以拿到DOM元素,DOM元素被解析了。
③Vue生命周期第三个阶段:组件更新阶段
更新前:数据改变了,DOM没有发生变化;
更新后:数据改变了,DOM也发生了变化。
④Vue生命周期第四个阶段:组件销毁阶段
销毁前:所有的事件监听和实例都可以用;
销毁后:所有的事件监听和实例都被销毁。

附上代码观察各个阶段的状态
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <div id="app">
    <div>{{msg}}</div>
    <button @click='update'>更新</button>
    <button @click='destroy'>销毁</button>
  </div>
  <script type="text/javascript" src="js/vue.js"></script>
  <script type="text/javascript">
    /*
      Vue实例的生命周期
      
    */
    var vm = new Vue({
      el: '#app',
      data: {
        msg: '生命周期'
      },
      methods: {
        update: function(){
          this.msg = 'hello';
        },
        destroy: function(){
          this.$destroy();
        }
      },
      beforeCreate: function(){
        //vue实例刚被创建出来,此时还没有初始化好data和methods属性
        console.log('beforeCreate');
      },
      created: function(){
        //实例的data与methods已经初始化,此时还没有开始编译模板
        console.log('created');
      },
      beforeMount: function(){
        //已经完成了模板的编译,但是还没有挂载到页面中(准备用编译好的模板替换el属性指向的DOM对象中的内容)
        console.log('beforeMount');
      },
      mounted: function(){
        //已经将模板编译好,挂载到了指定的容器后触发的函数,并且实时监听data变化随时准备更新DOM
        console.log('mounted');
      },
      beforeUpdate: function(){
        //主要data中的数据发生了变化就会执行这个函数
        //执行beforeUpdate时候,data的数据已经是最新的了,但是是还没有更新到界面上的数据
        console.log('beforeUpdate');
      },
      updated: function(){
        //主要data中的数据发生了变化就会执行这个函数
        //执行updated的时候,data的数据已经是最新的了,界面上的数据也已经更新
        console.log('updated');
      },
      beforeDestroy: function(){
        //执行beforeDestroy的时候,表示Vue实例即将销毁,但是还未销毁,实例中的数据等都可以使用
        //最后能使用Vue实例的地址
        console.log('beforeDestroy');
      },
      destroyed: function(){
        //执行destyoyed的时候,表示Vue实例已经完全销毁,实例中的任何内容都不能再使用了
        console.log('destroyed');
      }
    });
  </script>
</body>
</html>

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值