最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

VUE生命周期全面系統(tǒng)詳解

 更新時間:2022年07月29日 14:28:30   作者:Favour72  
Vue的生命周期就是vue實例從創(chuàng)建到銷毀的全過程,也就是new?Vue()?開始就是vue生命周期的開始。Vue?實例有?個完整的?命周期,也就是從開始創(chuàng)建、初始化數(shù)據(jù)、編譯模版、掛載Dom?->?渲染、更新?->?渲染、卸載?等?系列過程,稱這是Vue的?命周期

什么是生命周期

每個組件在被創(chuàng)建時都要經(jīng)過一系列的初始化過程——例如,需要設(shè)置數(shù)據(jù)監(jiān)聽、編譯模板、將實例掛載到 DOM 并在數(shù)據(jù)變化時更新 DOM 等。同時在這個過程中也會運行一些叫做生命周期鉤子的函數(shù)

生命周期的作用

  • 創(chuàng)建后發(fā)起axax請求
  • 掛載后操作dom
  • 添加事件監(jiān)聽
  • 銷毀前移除間隔調(diào)用,事件監(jiān)聽
  • 說明:并不是每個生命周期都必須使用

vue生命周期有哪些

如下圖(記不住就抄八百遍)

Vue 生命周期總共分為幾個階段

Vue 實例從創(chuàng)建到銷毀的過程,就是生命周期。也就是從開始創(chuàng)建、初始化 數(shù)據(jù)、編譯模板、掛載 Dom→渲染、更新→渲染、卸載等一系列過程,我們稱這 是 Vue 的生命周期。

創(chuàng)建前后

1)beforeCreate創(chuàng)建前

在實例初始化之后,數(shù)據(jù)觀測 (data observer) 和 event/watcher 事件配 置之前被調(diào)用。

特點: 有this,沒有data,methods,dom節(jié)點

beforeCreate() {
			// 創(chuàng)建前,有this,沒有data,methods,dom節(jié)點
			console.log("beforeCreate",this.num ,this)
		},

2)created創(chuàng)建后

在實例創(chuàng)建完成后被立即調(diào)用。在這一步,實例已完成以下的配置:數(shù)據(jù)觀 測 (data observer), 屬性和方法的運算,watch/event 事件回調(diào)。然而,掛 載階段還沒開始,$el 屬性目前不可見。

特點:有this,沒有$els,dom節(jié)點

用處:發(fā)起ajax請求,開啟定時器,監(jiān)聽事件(window)

created() {
			// 創(chuàng)建完畢,有data,沒有el
			console.log("created",this.num ,this.$el)
			// 作用發(fā)起ajax請求,開啟定時器,監(jiān)聽事件(window)
			// 開啟定時器
			this.stopId = setInterval(() => {
				this.num++;
				console.log("滴答")
			}, 1000)
			// 監(jiān)聽事件
			window.addEventListener("resize",this.showWin)
		},

掛載前后

3)beforeMounte掛載前

特點: 有$el,沒有渲染數(shù)據(jù)

在掛載開始之前被調(diào)用:相關(guān)的 render 函數(shù)首次被調(diào)用。

		beforeMount() {
			// dom掛載前,有el,沒有渲染數(shù)據(jù)
			// beforeMount 訪問&el 為什么是 undefined
			// 因為使用的腳手架,動態(tài)更新造成的(在非腳手架狀態(tài)下可以)
			console.log("beforeMount", this, document.querySelector("#btn"))
		},

4)mounted掛載后

特點: 有dom節(jié)點,數(shù)據(jù)也渲染

用處: 操作dom節(jié)點,發(fā)起ajax請求,開啟定時器,監(jiān)聽事件, el 被新創(chuàng)建的 vm.$el 替換,并掛載到實例上去之后調(diào)用該鉤子。如果 root 實例掛載了一個文檔內(nèi)元素,當(dāng) mounted 被調(diào)用時 vm.$el 也在文檔內(nèi)。

		mounted() {
			// 掛載完畢
			console.log("*mounted", this, document.querySelector("#btn"))
			// this 當(dāng)前組件的實例
			// this.$el 當(dāng)前組件的dom節(jié)點
			// this.num當(dāng)前組件的 屬性
			// console.log(this,this.$el,"組件的實例this",this.num)
			// 作用:作用發(fā)起ajax請求,開啟定時器,監(jiān)聽事件,操作dom節(jié)點
		},

更新前后

5)beforeUpdate更新前

特點: 會執(zhí)行多次,數(shù)據(jù)更新,dom節(jié)點沒有更新

數(shù)據(jù)更新時調(diào)用,發(fā)生在虛擬 DOM 打補(bǔ)丁之前。這里適合在更新之前訪問 現(xiàn)有的 DOM,比如手動移除已添加的事件監(jiān)聽器。該鉤子在服務(wù)器端渲染期間不 被調(diào)用,因為只有初次渲染會在服務(wù)端進(jìn)行。

		// 更新前后
		beforeUpdate() {
			// 組件的更新前,數(shù)據(jù)更新,視圖沒有更新
			console.log("beforeUpdate", this.num, document.querySelector("#btn").innerText)
		},

6)updated更新后

特點: 會執(zhí)行多次,數(shù)據(jù)更新,dom節(jié)點也更新

由于數(shù)據(jù)更改導(dǎo)致的虛擬 DOM 重新渲染和打補(bǔ)丁,在這之后會調(diào)用該鉤子。

		updated() {
			// 組件更新后,數(shù)據(jù)更新,視圖已經(jīng)更新
			console.log("updated", this.num, document.querySelector("#btn").innerText)
		},

銷毀前后

7)beforeDestroy銷毀前

特點: 數(shù)據(jù)更新,視圖沒有更新

用處:移除事件監(jiān)聽,停止計時器

實例銷毀之前調(diào)用。在這一步,實例仍然完全可用。該鉤子在服務(wù)器端渲染 期間不被調(diào)用。

		// 卸載前后
		beforeDestroy() {
			// 結(jié)束定時器
			clearInterval(this.stopId);
			//移除事件監(jiān)聽
			window.removeEventListener("resize", this.showWin)
			// 數(shù)據(jù)可以更新,視圖已經(jīng)不響應(yīng)
			// this.num++;
			// console.log( "卸載前","beforeDestroy")
			// alert("卸載前")
		},

8)destroyed銷毀后

特點: 沒有this,切換視圖與vue實例的聯(lián)系

Vue 實例銷毀后調(diào)用。調(diào)用后,Vue 實例指示的所有東西都會解綁定,所有 的事件監(jiān)聽器會被移除,所有的子實例也會被銷毀。該鉤子在服務(wù)器端渲染期間 不被調(diào)用。

		destroyed() {
			// 切斷視圖與vue實例的聯(lián)系
			// this.num++;
			console.log("卸載后", "destroyed")
		}

效果如下:

問題

第一次加載頁面會觸發(fā)哪幾個鉤子函數(shù)?

當(dāng)頁面第一次頁面加載時會觸發(fā) beforeCreate, created, beforeMount, mounted 這幾個鉤子函數(shù)

到此這篇關(guān)于VUE生命周期全面系統(tǒng)詳解的文章就介紹到這了,更多相關(guān)VUE生命周期內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于vue和websocket的多人在線聊天室

    基于vue和websocket的多人在線聊天室

    這篇文章主要介紹了基于vue和websocket的多人在線聊天室,需要的朋友可以參考下
    2020-02-02
  • Vue項目移動端滾動穿透問題的實現(xiàn)

    Vue項目移動端滾動穿透問題的實現(xiàn)

    這篇文章主要介紹了Vue項目移動端滾動穿透問題的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Nginx部署前端vue項目的全部步驟記錄

    Nginx部署前端vue項目的全部步驟記錄

    本文講解了如何在Linux環(huán)境中部署Vue項目,包括安裝依賴、編譯項目、安裝配置Nginx,并介紹了SSL證書安裝與配置,詳細(xì)說明了使用Nginx作為靜態(tài)資源服務(wù)器和反向代理的步驟,以及進(jìn)行性能、安全性測試和備份的重要性,需要的朋友可以參考下
    2024-09-09
  • Vue3中如何檢測數(shù)組的變化方式

    Vue3中如何檢測數(shù)組的變化方式

    這篇文章主要介紹了Vue3中如何檢測數(shù)組的變化方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • 關(guān)于el-table表格組件中插槽scope.row的使用方式

    關(guān)于el-table表格組件中插槽scope.row的使用方式

    這篇文章主要介紹了關(guān)于el-table表格組件中插槽scope.row的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 第一個Vue插件從封裝到發(fā)布

    第一個Vue插件從封裝到發(fā)布

    這篇文章主要為大家詳細(xì)介紹了第一個Vue插件從封裝到發(fā)布的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Vue組件的實現(xiàn)原理詳細(xì)分析

    Vue組件的實現(xiàn)原理詳細(xì)分析

    在日常業(yè)務(wù)開發(fā)中我們會經(jīng)常封裝一些業(yè)務(wù)組件,下面這篇文章主要給大家介紹了關(guān)于Vue組件的實現(xiàn)原理,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • 在vue項目中引入vue-beauty操作方法

    在vue項目中引入vue-beauty操作方法

    在本篇文章里小編給大家分享了關(guān)于在vue項目中引入vue-beauty操作方法,有需要的朋友們跟著學(xué)習(xí)參考下。
    2019-02-02
  • 淺談VUE uni-app 模板語法

    淺談VUE uni-app 模板語法

    這篇文章主要介紹了uni-app 的模板語法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-10-10
  • Element-UI Table組件上添加列拖拽效果實現(xiàn)方法

    Element-UI Table組件上添加列拖拽效果實現(xiàn)方法

    這篇文章主要為大家詳細(xì)介紹了Element-UI Table組件上添加列拖拽效果的實現(xiàn)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04

最新評論

哈密市| 南丹县| 景德镇市| 无锡市| 渭源县| 徐水县| 茌平县| 全椒县| 工布江达县| 信宜市| 扶绥县| 济源市| 宜川县| 临沭县| 时尚| 海淀区| 昭觉县| 舒兰市| 略阳县| 凤山市| 台前县| 上思县| 泰安市| 凤山县| 滨州市| 建昌县| 开远市| 新巴尔虎右旗| 温州市| 新邵县| 临高县| 永康市| 海城市| 沁阳市| 黔南| 察雅县| 化隆| 通江县| 定陶县| 神木县| 洛扎县|