vue16_vue的生命周期和鉤子函數(shù)

示例代碼如下,可以手動(dòng)運(yùn)行注釋掉的語(yǔ)句,打印看看結(jié)果,結(jié)合注釋的講解分析

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <script src="./lib/vue-2.4.0.js"></script>
</head>

<body>
  <div id="app">
    <input type="button" value="修改msg" @click="msg='No'">
    <h3 id="h3">{{ msg }}</h3>
  </div>

  <script>
    // 創(chuàng)建 Vue 實(shí)例,得到 ViewModel
    var vm = new Vue({
      el: '#app',
      data: {
        msg: 'ok'
      },
      methods: {
        show() {
          console.log('執(zhí)行了show方法')
        }
      },
      beforeCreate() { // 這是我們遇到的第一個(gè)生命周期函數(shù),表示實(shí)例完全被創(chuàng)建出來(lái)之前,會(huì)執(zhí)行它
        // console.log(this.msg)
        // this.show()
        // 注意: 在 beforeCreate 生命周期函數(shù)執(zhí)行的時(shí)候,data 和 methods 中的 數(shù)據(jù)都還沒(méi)有沒(méi)初始化
      },
      created() { // 這是遇到的第二個(gè)生命周期函數(shù)
        // console.log(this.msg)
        // this.show()
        //  在 created 中,data 和 methods 都已經(jīng)被初始化好了!
        // 如果要調(diào)用 methods 中的方法,或者操作 data 中的數(shù)據(jù),最早,只能在 created 中操作
      },
      beforeMount() { // 這是遇到的第3個(gè)生命周期函數(shù),表示 模板已經(jīng)在內(nèi)存中編輯完成了,但是尚未把 模板渲染到 頁(yè)面中
        // console.log(document.getElementById('h3').innerText)
        // 在 beforeMount 執(zhí)行的時(shí)候,頁(yè)面中的元素,還沒(méi)有被真正替換過(guò)來(lái),只是之前寫的一些模板字符串
      },
      mounted() { // 這是遇到的第4個(gè)生命周期函數(shù),表示,內(nèi)存中的模板,已經(jīng)真實(shí)的掛載到了頁(yè)面中,用戶已經(jīng)可以看到渲染好的頁(yè)面了
        // console.log(document.getElementById('h3').innerText)
        // 注意: mounted 是 實(shí)例創(chuàng)建期間的最后一個(gè)生命周期函數(shù),當(dāng)執(zhí)行完 mounted 就表示,實(shí)例已經(jīng)被完全創(chuàng)建好了,此時(shí),如果沒(méi)有其它操作的話,這個(gè)實(shí)例,就靜靜的 躺在我們的內(nèi)存中,一動(dòng)不動(dòng)
      },


      // 接下來(lái)的是運(yùn)行中的兩個(gè)事件
      beforeUpdate() { // 這時(shí)候,表示 我們的界面還沒(méi)有被更新【數(shù)據(jù)被更新了嗎?  數(shù)據(jù)肯定被更新了】
        /* console.log('界面上元素的內(nèi)容:' + document.getElementById('h3').innerText)
        console.log('data 中的 msg 數(shù)據(jù)是:' + this.msg) */
        // 得出結(jié)論: 當(dāng)執(zhí)行 beforeUpdate 的時(shí)候,頁(yè)面中的顯示的數(shù)據(jù),還是舊的,此時(shí) data 數(shù)據(jù)是最新的,頁(yè)面尚未和 最新的數(shù)據(jù)保持同步
      },
      updated() {
        console.log('界面上元素的內(nèi)容:' + document.getElementById('h3').innerText)
        console.log('data 中的 msg 數(shù)據(jù)是:' + this.msg)
        // updated 事件執(zhí)行的時(shí)候,頁(yè)面和 data 數(shù)據(jù)已經(jīng)保持同步了,都是最新的
      }
    });
  </script>
</body>

</html>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、通過(guò)CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請(qǐng)求組件 FMDB本地?cái)?shù)據(jù)庫(kù)組件 SD...
    陽(yáng)明AI閱讀 16,226評(píng)論 3 119
  • 1 過(guò)去的我,似乎總在孤身的奮斗和無(wú)盡的自憐。渴望找到一條安身立命的道路,一直忐忑不安的心靈渴求安定。 曾經(jīng)我以為...
    怡然說(shuō)書閱讀 1,032評(píng)論 0 1
  • 【瓜瓜,6-1-2017 小確幸】#清炒芥藍(lán)#進(jìn)賬感:中午外出辦事,午餐打算好好吃一頓,想起對(duì)面的和諧家苑有外婆味...
    kaigua閱讀 223評(píng)論 0 0

友情鏈接更多精彩內(nèi)容