当面试中问到Vue生命周期如何作答

[1.什么是Vue生命周期]
Vue实例从创建到销毁的过程,就是生命周期
[2.什么是钩子函数]
Vue实例从创建到销毁的过程中也会运行一些叫做生命周期钩子的函数,
这给了用户在不同阶段添加自己的代码的机会,利用各个钩子来完成我们的业务代码。
[3.生命周期的理解]
每个 Vue 实例在被创建时都要经过一系列的初始化过程。
例如:从开始创建、初始化数据、编译模板、挂载Dom、数据变化时更新DOM、卸载等一系列过程。
而每个阶段会触发不同的方法
例如:
开始创建,初始化数据过程,先后触发beforeCreated,created方法
编译模板,挂载Dom过程,先后触发breforeMounted,Mounted方法
数据变化时更新DOM过程,先后触发beforeUpdate,Update方法
卸载过程,先后触发beforeDestory,destory方法
 


<!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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值