国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Vue2到Vue3你必知的生命周期鉤子函數(shù),快速搞定Vue組件優(yōu)化

開發(fā) 前端
Vue 3 在生命周期設(shè)計(jì)上擺脫了 Vue 2 的基于代碼順序的設(shè)計(jì),轉(zhuǎn)而使用了基于 API 的逐步執(zhí)行。

Vue 3在生命周期鉤子函數(shù)的設(shè)計(jì)方面的目標(biāo)之一是盡量減少組件狀態(tài)的管理,提高代碼的可讀性和模塊化。Vue 3 的生命周期主要圍繞著Composition API設(shè)計(jì)展開,這使得生命周期的使用更加靈活和直觀。而Vue 2在這方面的設(shè)計(jì)思想則是把不同階段所需的操作都分離出來方便維護(hù)和調(diào)試。

以下是Vue 2和 Vue 3 生命周期的對(duì)比及其詳細(xì)介紹:

一、 Vue 2 的生命周期鉤子函數(shù)

beforeCreate

在實(shí)例化之后、數(shù)據(jù)初始化之前被調(diào)用。此時(shí)模板已經(jīng)編譯成了 render 函數(shù)并且創(chuàng)建了虛擬 DOM,但是還未完成注入 data 和 computed 屬性,也未執(zhí)行方法或處理事件。因此,如果再 Vue 實(shí)例里需要自定義一些 property 屬性或者使用 $store 等全局變量,那么這個(gè)時(shí)機(jī)就非常適合,否則可能會(huì)報(bào)錯(cuò)。

created

在實(shí)例化后數(shù)據(jù)初始化后被調(diào)用。在 created 階段,data 和 computed 已經(jīng)被注入而 methods、watcher、events 等事件以及 template/render 函數(shù)都還沒發(fā)生過回調(diào)調(diào)用。 Vue 實(shí)例已經(jīng)被完全渲染出來,DOM 也已經(jīng)渲染好了,我們可以在這個(gè)階段綁定監(jiān)聽器,但是只能對(duì)狀態(tài)做出反應(yīng),不能改變狀態(tài)。你的組件實(shí)例現(xiàn)在已經(jīng)準(zhǔn)備好了,可以被掛載到 DOM 樹上。

beforeMount

在掛載之前被調(diào)用 。當(dāng) Vue 實(shí)將要掛載到 DOM 時(shí)執(zhí)行該方法。 在此階段,Vue 的 render 函數(shù)已經(jīng)返回虛擬 DOM 并進(jìn)行了 diff 算法計(jì)算,即將來會(huì)更新視圖的內(nèi)容已被計(jì)算,但是尚未應(yīng)用到視圖上。

mounted

當(dāng) Vue 實(shí)例掛載到 DOM 上后調(diào)用 。這說明現(xiàn)在真正的執(zhí)行 DOM 和 Webpack 文件打包工作均完成,Vue插件安裝、數(shù)據(jù)依賴關(guān)系初始化等等也都已完成,因此可以進(jìn)行一些需要操作 DOM 的任務(wù)。mounted 僅僅保證了在該鉤子函數(shù)中可以正常訪問 DOM 元素,所有的 Mounted 過程并不是一次性完全輸出,而是一個(gè)疊加效果:首先最開始的 mounted 先執(zhí)行(包含其內(nèi)部子組件),接著是子孫組件的 mounted。

beforeUpdate

在當(dāng)前組件更新前被調(diào)用,即數(shù)據(jù)更新前 DOM 更新前。當(dāng)數(shù)據(jù)改變導(dǎo)致模板重新渲染時(shí),面向用戶的界面還沒有被更新,這時(shí)就會(huì)調(diào)用 beforeUpdate 鉤子。因?yàn)閿?shù)據(jù)已經(jīng)發(fā)生變化,但是頁面的數(shù)據(jù)并沒有變 (如果有修改數(shù)據(jù)的話,使用 $nextTick)。 可以通過在鉤子函數(shù)中對(duì)狀態(tài)的操作,從而讓狀態(tài)修改后立即生效,這樣做同樣是不推薦的。

updated

當(dāng)前組件更新結(jié)束之后調(diào)用(即由于數(shù)據(jù)更新而觸發(fā)重新渲染過后)。這里就需要注意的是 updated 與 mounted 非常相似。不同在于 updated 是每次數(shù)據(jù)更新都會(huì)執(zhí)行,而 mounted 只會(huì)執(zhí)行一次。

activated

keep-alive 組件激活時(shí)調(diào)用。 activated 鉤子函數(shù)僅僅在使用 keep-alive 組件時(shí)才能被觸發(fā)。使用 keep-alive 包裹的組件在被銷毀時(shí),其緩存的狀態(tài)會(huì)保存。當(dāng)再次需要使用該組件時(shí),緩存的狀態(tài)會(huì)恢復(fù)。這個(gè)時(shí)候 activated 就會(huì)被調(diào)用。

deactivated

keep-alive 組件停用時(shí)調(diào)用。 deactivated 不同 activated 一樣,deactivated 鉤子函數(shù)僅僅在使用 keep-alive 組件時(shí)才能被觸發(fā)。當(dāng) keep-alive 組件從文檔中移除并停用時(shí),deactivated 就會(huì)被調(diào)用了。

beforeDestroy

在一個(gè) Vue 實(shí)例銷毀之前調(diào)用。這個(gè)時(shí)候 Vue 組件實(shí)例完全可用,用戶界面依然可以互動(dòng)。 beforeDestroy 發(fā)生時(shí)如有監(jiān)聽器要指定清理工作,請(qǐng)務(wù)必在此時(shí)進(jìn)行清理以避免內(nèi)存溢出等問題的出現(xiàn)。

destroyed

在一個(gè) Vue 實(shí)例銷毀之后調(diào)用。這個(gè)時(shí)候代表著組件已經(jīng)完全的被銷毀,那么組件對(duì)象也就變得毫無價(jià)值。所有的事件監(jiān)聽器、數(shù)據(jù)綁定和子組件也已經(jīng)被移除了。

errorCaptured

當(dāng)捕獲一個(gè)來自子孫組件的錯(cuò)誤時(shí)會(huì)調(diào)用這個(gè)鉤子。用于統(tǒng)計(jì)錯(cuò)誤、日志上報(bào)等收集異常信息。

二、Vue 3 的生命周期鉤子函數(shù)

Vue 3 在生命周期設(shè)計(jì)上擺脫了 Vue 2 的基于代碼順序的設(shè)計(jì),轉(zhuǎn)而使用了基于 API 的逐步執(zhí)行。

setup

組件選項(xiàng)中最先被執(zhí)行的一個(gè)鉤子函數(shù)是 setup。在這個(gè)鉤子函數(shù)中可以設(shè)置 props、data、computed、methods 等函數(shù)或?qū)傩裕⑶倚枰獙⑦@些函數(shù)或?qū)傩员┞督o模板中使用。setup 函數(shù)會(huì)在組件實(shí)例創(chuàng)建前執(zhí)行,而這個(gè)函數(shù)所提供的所有屬性都會(huì)被視為響應(yīng)式數(shù)據(jù),也就是說,可以通過類似于 data 中所提供的語法去訪問和更新它們。

onBeforeMount

與 beforeMount 的作用一致,在組件即將被安裝時(shí)執(zhí)行。

onMounted

與 mounted 的作用一致,在組件已經(jīng)被安裝后立即執(zhí)行。

onBeforeUpdate

與 beforeUpdate 的作用一致,在組件即將更新時(shí)執(zhí)行。

onUpdated

與 updated 的作用一致,在 DOM 被更新同步后執(zhí)行。

onErrorCaptured

與 errorCaptured 的作用一致,可以捕獲子孫組件拋出的錯(cuò)誤并進(jìn)行統(tǒng)計(jì)和上報(bào)。

onBeforeUnmount

與 beforeDestroy 的作用一致,在組件即將被卸載時(shí)執(zhí)行。在這個(gè)階段內(nèi)部狀態(tài)還是可用的。

onUnmounted

與 destroyed 的作一致,在組件已經(jīng)被卸載并且其對(duì)應(yīng)的視圖 DOM 已經(jīng)被清空之后執(zhí)行。

onRenderTracked

在 Vue 3 中新增了一個(gè)鉤子函數(shù) onRenderTracked,可以用于捕獲組件渲染的過程中哪些數(shù)據(jù)被訪問,哪些數(shù)據(jù)被修改等。這對(duì)于診斷 Vue 應(yīng)用的性能問題是非常有幫助的。

onRenderTriggered

與 onRenderTracked 功能相反, 它會(huì)在組件渲染的過程中,跟蹤是什么引起了渲染的。這個(gè)鉤子函數(shù)也可以用于優(yōu)化組件渲染性能。

三、總結(jié)

Vue 3 的生命周期相較于 Vue 2 精簡(jiǎn)、靈活性更高,通過 Composition API 將所有數(shù)據(jù)操作集中到 setup 選項(xiàng)中,代碼結(jié)構(gòu)清晰,使得開發(fā)者可以更容易地按照需求組織代碼并快速迭代。此外,Vue 3 增加了幾個(gè)新的生命周期鉤子函數(shù),如 onRenderTracked 和 onRenderTriggered,可以通過這些新的 API 更好地優(yōu)化應(yīng)程序性能問題。

責(zé)任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2024-10-12 10:39:36

函數(shù)緩存activated

2022-06-21 12:09:18

Vue差異

2020-03-25 18:23:07

Vue2Vue3組件

2023-12-25 08:32:06

2023-02-23 09:59:52

路由差異Vue

2022-12-09 09:39:20

Vue3Vue2

2021-05-06 07:40:56

Vue3 Vue2 組件

2021-03-30 08:05:39

Vue 3 生命周期Vue2

2022-06-29 16:59:21

Vue3Vue2面試

2022-07-18 10:43:12

項(xiàng)目TienChinJava

2021-03-22 10:05:25

開源技術(shù) 項(xiàng)目

2024-10-07 09:49:14

2022-09-20 11:00:14

Vue3滾動(dòng)組件

2023-11-28 09:03:59

Vue.jsJavaScript

2020-11-12 08:32:14

Vue3模板優(yōu)化

2021-12-01 08:11:44

Vue3 插件Vue應(yīng)用

2023-04-27 11:07:24

Setup語法糖Vue3

2020-11-06 08:54:43

Vue 3.0函數(shù)代碼

2020-12-01 08:34:31

Vue3組件實(shí)踐

2021-11-30 08:19:43

Vue3 插件Vue應(yīng)用
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

av电影成人| 啪啪激情综合网| 精品国产亚洲一区二区三区在线观看| 国内精品免费**视频| 亚洲精品不卡在线| 成人黄色免费短视频| 欧美精品18videos性欧| 日韩欧美黄色| 成人av电影天堂| 国产成人精品三级| 三级黄视频在线观看| 亚洲国产成人爱av在线播放| 欧美三级电影在线| 免费在线激情视频| 蜜桃av久久久亚洲精品| 亚洲第一网中文字幕| 亚洲视频成人| 91精品免费在线观看| 久久精品影视| 888av在线| 欧美亚洲另类在线一区二区三区| 欧美日本在线播放| 日韩av高清在线观看| 国产不卡123| 久久久久久久9| 欧美精品在线视频观看| 国产日韩一级二级三级| 久久动漫网址| 手机福利小视频在线播放| 激情伦成人综合小说| 日韩av在线影院| 93久久精品日日躁夜夜躁欧美| 亚洲第一论坛sis| 黄色网址在线播放| 亚洲成人午夜在线| 中文字幕在线国产精品| 欧美xxxx视频| 日韩国产一级片| 91精品国产高清久久久久久91| 午夜一区二区三区在线观看| 99国产精品久久久久久久| 中国色在线日|韩| 免费看污污网站| 99r国产精品视频| 精品在线欧美视频| 18欧美亚洲精品| 一区二区三区精品视频在线观看| 成人做爰视频www网站小优视频| www.99com| 欧美成人第一区| 色视频www在线播放国产成人| 亚洲最新在线观看| 日日夜夜精品视频天天综合网| 美女视频一区| 中文字幕在线二区| 日韩电影免费观看在| 精品国内产的精品视频在线观看| 亚洲777理论| 国产高清精品网站| 91视频精品| 欧美www.| 一区二区三区不卡在线视频| 激情图片qvod| 欧美激情综合色| 91高清视频免费看| 成人精品一区二区三区四区| 欧美精品密入口播放| 香蕉视频网站在线观看| 自慰无码一区二区三区| 999国内精品视频在线| 国产一区二区三区三区在线观看 | 先锋影音网一区| 91精品国产综合久久蜜臀| 国产一区二区三区黄网站| 日日夜夜精品视频天天综合网| 性久久久久久久久久久久| 麻豆一区一区三区四区| av毛片在线免费| 妞干网免费视频| 一级全黄肉体裸体全过程| 日本欧美日韩| 国产人妖一区| 最新日韩三级| 台湾无码一区二区| 91手机视频在线观看| 日韩中文在线中文网三级| 日韩欧美精品中文字幕| 日本韩国一区二区| 欧美日韩dvd在线观看| 九九热99久久久国产盗摄| 欧美猛男性生活免费| 亚洲欧美在线x视频| 精品国产乱码久久久久久浪潮| 日本一区二区三区视频视频| 91免费国产视频网站| 久久精品一区四区| 国产麻豆精品theporn| 精品一区二区三区在线播放| 亚洲视频图片小说| 91精品国产91久久久久| 98精品国产高清在线xxxx天堂| 亚洲午夜精品久久| 波多野结衣作品集| 24小时免费看片在线观看 | 国产午夜精品美女视频明星a级| 亚洲美女在线观看| 亚洲视频欧美视频| 国产999精品久久久| 国产mv免费观看入口亚洲| 91精品美女在线| 日韩免费电影一区二区| 久久成人国产精品| 成人三级在线| 免费xxxxx网站中文字幕| 色播在线观看| 国产午夜精品一区二区三区| 一区二区三区日韩欧美精品| 深夜成人在线| 中文在线√天堂| 国产日韩在线| 日本久久精品一区二区| 人人妻人人澡人人爽欧美一区双 | 日韩伦理在线| 蜜桃传媒在线观看免费进入| 无遮挡动作视频在线观看免费入口| 美女黄视频在线播放 | 亚洲欧美日韩小说| 久久久久久久久久电影| 91色视频在线| av网站一区二区三区| 成人国产一区二区三区精品| 福利一区在线观看| 国产99久久久精品| 成人蜜臀av电影| 国产成a人亚洲精| 国产一区二区三区精品欧美日韩一区二区三区 | 日韩精品综合在线| 永久免费看av| 久操手机在线视频| 成人午夜免费在线| 噜噜噜久久亚洲精品国产品麻豆| 日韩精品在线中文字幕| 国产av天堂无码一区二区三区| 熟妇熟女乱妇乱女网站| a级片一区二区| av免费观看网| www.天天射.com| 免费的av电影| 18一19gay欧美视频网站| 美女福利精品视频| 久久久久久久国产| 日韩av免费一区| 91中文精品字幕在线视频| 国产精品免费在线| 色99中文字幕| 国产免费一区二区三区四在线播放| 日韩欧美视频免费在线观看| 国产毛片视频网站| 色婷五月综激情亚洲综合| 日本fc2在线观看| 成年人视频免费在线观看| 1区2区在线观看| 原纱央莉成人av片| a级日韩大片| 98精品久久久久久久| 国产精品日韩| 国产成人精品免费网站| 亚洲国产精品成人综合| 午夜精彩视频在线观看不卡| 欧美精品日韩精品| 亚洲欧美综合区自拍另类| 欧美国产日韩中文字幕在线| 国产精品一区二区三区毛片淫片| 精品国产电影| 美女黄色免费看| 久久午夜剧场 | 欧美日本国产精品| 国产精品12p| 国产精品美女久久久久av超清| 视频一区国产| 欧美一区二区三区四区高清| av成人综合| 久久国产亚洲| 欧美黑人xxxx| 免费日本一区二区三区视频| 91理论电影在线观看| 精品综合久久久| 蜜桃一区二区| 亚洲美女精品久久| 男操女在线观看| 亚洲三级久久久| 成年人网站国产| 日韩中文字幕区一区有砖一区 | 日本不卡一区二区三区四区| 国内精品伊人| 欧美久久高跟鞋激| 国产手机视频在线观看| 国产永久精品大片wwwapp| 亚洲精品在线免费观看视频| 日韩性xxx|