這篇“vue3生命周期函數改了幾個”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“vue3生命周期函數改了幾個”文章吧。
10年積累的網站設計、成都網站設計經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先做網站后付款的網站建設流程,更有靖江免費網站建設讓你可以放心的選擇與我們合作。
vue3改了4個生命周期函數。Vue3組合式api取消了beforeCreated和created鉤子函數,采用steup鉤子代替,且里面不能使用this。Vue3里面的組件銷毀的鉤子函數由destroyed和beforeDestroy換成了beforeUnmount和unmounted。
Vue實例有一個完整的生命周期,也就是從new Vue()、初始化事件(.once事 件)和生命周期、編譯模版、掛載Dom -> 渲染、更新 -> 渲染、卸載
等?系列過程,稱這是Vue的生命周期。
vue應用程序中有4個主要事件(8個鉤子):
創建 ---- 在組建創建時執行
掛載 ---- DOM被掛載時執行
更新 ---- 當響應數據被修改時執行
銷毀 ----在元素被銷毀之前立即執行
Vue2的生命周期
(1) beforeCreate(創建前)
數據監測(getter和setter)和初始化事件還未開始,此時 data 的響應式追蹤、
event/watcher 都還沒有被設置
不能訪問到data、computed、watch、methods上的方法和數據。
(2)created(創建后)
創建完成后會自動執行函數
(3) beforeMount(掛載前)
在掛載開始之前被調用,相關的render函數首次被調用。
這次Vue開始解析模板,生成虛擬DOM存在內存中,還沒有把虛擬DOM轉換成真實DOM,插入頁面中
(4)mounted(掛載后)
在el被新創建的 vm.$el(就是真實DOM的拷貝)替換,并掛載到實例上去之后調用(將內存中的虛擬DOM轉為真實DOM,真實DOM插入頁面)。
一般在這個階段進行:開啟定時器,發送網絡請求,訂閱消息,綁定自定義事件等等
(5)beforeUpdate(更新前)
響應式數據更新時調用,此時雖然響應式數據更新,但是對應的真實 DOM 還沒有被渲染(數據是新的,但頁面是舊的,頁面和數據沒保持同步呢)。
(6)updated(更新后)
由于數據更改導致的虛擬DOM重新渲染和打補丁之后調用。
調用時,組件 DOM已經更新,所以可以執行依賴于DOM的操作。然而在大多數情況下,應該避免在此期間更改狀態,因為這可能會導致更新無限循環
(7)beforeDestroy(銷毀前)
實例銷毀之前調用
在這個階段一般進行關閉定時器,取消訂閱消息,解綁自定義事件。
(8)destroyed(銷毀后)
實例銷毀后調用,調用后,Vue 實例指示的所有東西都會解綁定,所有的事件監聽器會被移除,所有的子實例也會被銷毀。該鉤子在服務端渲染期間不被調用。
<!DOCTYPE html><html> <head> <meta charset="UTF-8" /> <title>分析生命周期</title> <!-- 引入Vue --> <script type="text/javascript" src="../js/vue.js"></script> </head> <body> <!-- 準備好一個容器--> <div id="root" :x="n"> <h4 v-text="n"></h4> <h4>當前的n值是:{{n}}</h4> <button @click="add">點我n+1</button> <button @click="bye">點我銷毀vm</button> </div> </body> <script type="text/javascript"> Vue.config.productionTip = false //阻止 vue 在啟動時生成生產提示。 new Vue({ el:'#root', // template:` // <div> // <h4>當前的n值是:{{n}}</h4> // <button @click="add">點我n+1</button> // </div> // `, data:{n:1}, methods: { add(){ console.log('add') this.n++ }, bye(){ console.log('bye') this.$destroy() } }, watch:{ n(){ console.log('n變了') } }, beforeCreate() { console.log('beforeCreate') }, created() { console.log('created') }, beforeMount() { console.log('beforeMount') }, mounted() { console.log('mounted') }, beforeUpdate() { console.log('beforeUpdate') }, updated() { console.log('updated') }, beforeDestroy() { console.log('beforeDestroy') }, destroyed() { console.log('destroyed') }, }) </script></html>
常用的生命周期鉤子:
1.mounted: 發送ajax請求、啟動定時器、綁定自定義事件、訂閱消息等【初始化操作】。
2.beforeDestroy: 清除定時器、解綁自定義事件、取消訂閱消息等【收尾工作】
關于銷毀Vue實例:
(1)銷毀后借助Vue開發者工具看不到任何信息。
(2)銷毀后自定義事件會失效,但原生DOM事件依然有效。
(3)一般不會在beforeDestroy操作數據,因為即便操作數據,也不會再觸發更新流程了。
Vue3的生命周期
(1) onBeforeMount
在掛載之前被調用,渲染函數render首次被調用
(2) onMounted
組件掛載時調用
(3) onBeforeUpdate
數據更新時調用,發生在虛擬DOM打補丁之前。
(4) onUpdated
因數據更改導致的虛擬DOM重新渲染和打補丁時調用
(5) onBeforeUnmount
在卸載組件實例之前調用,此階段的實例依舊是正常的。
(6) onUnmounted
卸載組件實例后調用,調用此鉤子時,組件實例的所有指令都被解除綁定,所有事件偵聽器都被移除,所有子組件實例被卸載。
vue2與vue3在生命周期的區別
vue2 | vue3 |
---|---|
beforeCreate | setup() 開始創建組件之前,創建的是data和method |
created | setup() |
beforeMount | onBeforeMount 組件掛載到節點上之前執行的函數。 |
mounted | onMounted 組件掛載完成后執行的函數 |
beforeUpdate | onBeforeUpdate 組件更新之前執行的函數。 |
updated | onUpdated 組件更新完成之后執行的函數。 |
beforeDestroy | onBeforeUnmount 組件掛載到節點上之前執行的函數。 |
destroyed | onUnmounted 組件卸載之前執行的函數。 |
以上就是關于“vue3生命周期函數改了幾個”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注創新互聯行業資訊頻道。
本文題目:vue3生命周期函數改了幾個
當前URL:http://vcdvsql.cn/article48/gjiehp.html
成都網站建設公司_創新互聯,為您提供小程序開發、用戶體驗、靜態網站、建站公司、企業網站制作、全網營銷推廣
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯