Vue-生命周期函数

生命周期

什么是生命周期
概念: 每一个vue实例创建 运行 销毁的过程就是生命周期,在实例的生命周期中,总是伴随各种事件 这些事件就是生命周期函数

生命周期函数:在实例的生命周期中 在特定阶段执行的一些特定的事件 叫做生命周期函数

生命周期钩子: 就是生命周期事件的别名
生命周期钩子 = 生命周期函数 = 生命周期事件
所有的生命周期函数.无论是哪个阶段的. 它的执行都是vue框架的自动执行,根据不同阶段自动执行的,并不受人为控制

主要的生命周期函数分类

创建阶段的生命周期函数

beforeCreate 是实例创建阶段的第一个生命周期函数 是在 data && methods 还未初始化的时候就被调用 所以这个函数我们很少使用 因为它并没有什么用 

<body>
<div id="app">
    <button @click="msg='no'">修改 msg 的值 为 no</button>
    <h1 id="txtMsg">{{msg}}</h1>
  </div>

<script>
// 创建一个vue实例
var vm = new Vue({
      el: '#app',
      data: {
        msg: 'ok'
      },
      methods: {
        test() {
          console.log('有人调用了  test  方法')
        }
      },

// 创建阶段的第一个生命周期函数
      beforeCreate() {
        console.log(this.msg)  // 输出结果 undefined
        this.test()  // Error this.test is not a function"
      },
</script>
<body>

created 是在页面创建完毕后第一个执行的生命周期函数,只要页面加载完毕必然执行.也是我们在日常中经常使用的一个函数.我们经常通过这个函数发送ajax请求得到数据进行操作 并把 获取到的数据挂载到 data 上存储;在这个函数执行的时候  data && methods  已初始化完毕 


created() {
        console.log(this.msg) // 输出 ok
        this.test() // 输出 有人调用了 test 方法
      },

 

mounted 这是创建阶段的最后一个生命周期函数 这个函数非常重要 它表示 页面 首次被渲染出来  如果项目中 需要初始化某些js插件 那么这些插件 需要在mounted中进行初始化 否则容易出现一些初始化失效的问题

mounted() {
         console.log(this.$el) // 会输出解析渲染后的结果  {{msg}} = ok
      },

而当 mounted 执行完 实例就要结束创建阶段 进入运行阶段了

注: 而在以上的几个生命周期函数中 最重要的就是 created && mounted 这俩个函数了 

其中  created 用来发送ajax请求 mounted 用来初始化插件 

运行阶段的生命周期函数

运行阶段的生命周期函数的主要作用 就是保持data和页面的数据一致 而且 只有当data发生变化的时候 这些函数才会执行 就是说  运行中的函数 会根据 data 数据的而变化 有选择性的执行0次或多次

beforeUpdate 在这个阶段 我们得到的数据是最新的数据 但是从页面打印的还是老数据 

beforeUpdate() {
        console.log('页面上的数据为:' + document.getElementById('txtMsg').innerHTML) // ok
        console.log('data中的数据为:' + this.msg) // no
      },

updated 在这个阶段 就说明 页面已经被重新渲染好了 此时  数据是最新的 页面 也是根据最新的数据 重新渲染的页面 ;

updated() {
        console.log('页面上的数据为:' + document.getElementById('txtMsg').innerHTML) // no
        console.log('data中的数据为:' + this.msg) // no
      }

可以根据图看的更清晰 整个流程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值