vue中的生命周期及鉤子函數(shù)
1.什么是生命周期
Vue 實例有一個完整的生命周期,也就是從開始創(chuàng)建、初始化數(shù)據(jù)、編譯模板、掛載 Dom
、渲染 → 更新 → 渲染、卸載等一系列過程,我們稱這是 Vue 的生命周期。通俗說就是 Vue 實例從創(chuàng)建到銷毀的過程,就是生命周期。
在 Vue 的整個生命周期中,它提供了一系列的事件,可以讓我們在事件觸發(fā)時注冊 js
方法,可以讓我們用自己注冊的 js 方法控制整個大局,在這些事件響應方法中的 this
直接指向的是 vue
的實例。
2.vue 的生命周期
生命周期函數(shù),又叫鉤子函數(shù)(生命周期鉤子===生命周期函數(shù)===生命周期事件)
vue 中的生命周期函數(shù),一般都是 成對出現(xiàn)。所以我們成對比較一下,他們的區(qū)別。
10 個生命周期函數(shù) 牢記!具體使用!
3.生命周期鉤子函數(shù)
特點:自動調用的,只是他們的調用的時間節(jié)點 有 先 有 后。
在官網(wǎng)上拿了張圖:
beforeCreate --- vue實例"創(chuàng)建前" ,注意:在這個函數(shù)中,vue中data數(shù)據(jù)中心的數(shù)據(jù),它是讀不到的。
<script src="./js/vue.js"></script> <script> let vm = new Vue({ el:'#app', data:{ name:"哈哈哈", num:1111 }, methods: { }, // vue實例創(chuàng)建之前 beforeCreate(){ console.log('beforeCreate'); console.log(this.name); } </script>
輸出數(shù)據(jù)中心的 name 是讀不到的:
created --- vue實例"創(chuàng)建后",注意:在這個函數(shù)中,可以識別 到 vue中data數(shù)據(jù)中心的數(shù)據(jù) <script src="./js/vue.js"></script> <script> let vm = new Vue({ el:'#app', data:{ name:"哈哈哈", num:1111 }, // vue實例創(chuàng)建之后 created(){ console.log("created"); console.log(this.name); } }) </script>
查看結果:
beforeMount --- DOM
掛載之前 this.$el---此時的$el為“虛擬的”DOM節(jié)點
在視圖層渲染標簽:
<div id="app"> <p>{{name}}</p> <p>{{num}}</p> </div> <script src="./js/vue.js"></script> <script> let vm = new Vue({ el:'#app', data:{ name:"哈哈哈", num:1111 }, // dom掛載之前 beforeMount(){ console.log("beforeMount"); //查看dom元素 console.log(document.body.querySelector("#app").innerHTML); } }) </script>
dom掛載前輸出結果:
mounted ---DOM掛載之后 this.$el---此時的$el為“真實的”DOM節(jié)點 <script src="./js/vue.js"></script> <script> let vm = new Vue({ el:'#app', data:{ name:"哈哈哈", num:1111 }, // dom掛載之后 mounted(){ console.log("mounted"); console.log(document.body.querySelector("#app").innerHTML); } }) </script>
查看輸出結果:
beforeUpdate
--- 數(shù)據(jù)更新之前(----視圖層中的數(shù)據(jù)的前后變化)updated
--- 數(shù)據(jù)更新之后(----視圖層中的數(shù)據(jù)的前后變化)
在視圖層通過 點擊讓 num 的數(shù)值發(fā)生改變來模擬數(shù)據(jù)更新,查看結果:
<div id="app"> <p id="num">{{num}}</p> <button @click="num++">點擊數(shù)據(jù)更新(num+1)</button> </div> // 數(shù)據(jù)更新前 beforeUpdate(){ console.log("beforeUpdate--數(shù)據(jù)更新前"); // 查看dom元素 console.log(document.body.querySelector("#num").innerHTML); }, // 數(shù)據(jù)更新后 updated(){ console.log("updated--數(shù)據(jù)更新后"); // 查看dom元素 console.log(document.body.querySelector("#num").innerHTML); }
此時數(shù)據(jù)無變化時,在控制臺是看不到效果的,當我們點擊按鈕后:
到此這篇關于vue中的生命周期及鉤子函數(shù)的文章就介紹到這了,更多相關vue中的生命周期鉤子函數(shù)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
vue基礎之v-bind屬性、class和style用法分析
這篇文章主要介紹了vue基礎之v-bind屬性、class和style用法,結合實例形式分析了vue.js中v-bind綁定及class、style樣式控制相關操作技巧,需要的朋友可以參考下2019-03-03Vue指令之 v-cloak、v-text、v-html實例詳解
當用戶頻繁刷新頁面或網(wǎng)速慢時,頁面未完成 Vue.js 的加載時,導致 Vue 來不及渲染,這就會導致在瀏覽器中直接暴露插值(表達式),這篇文章主要介紹了Vue指令 v-cloak、v-text、v-html,需要的朋友可以參考下2019-08-08vue組件Prop傳遞數(shù)據(jù)的實現(xiàn)示例
本篇文章主要介紹了vue組件Prop傳遞數(shù)據(jù)的實現(xiàn)示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08