中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue生命周期鉤子如何運行

發布時間:2022-06-13 10:03:42 來源:億速云 閱讀:230 作者:zzz 欄目:開發技術

這篇文章主要講解了“Vue生命周期鉤子如何運行”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Vue生命周期鉤子如何運行”吧!

生命周期鉤子

Vue 在生命周期鉤子方面有兩種范式。一種是 Vue3 中引入的組合式API(Composition API),另一種是Vue2 中選項式API(Options API) ,它是定義 Vue 組件的原型模式。在本指南中,將從選項式API(Options API)開始,然后以此為基礎來展示組合式API(Composition API)中的工作原理。

選項式API(Options API)

選項式API(Options API)是 Vue2 的范式,如下代碼所示:

export default {
    name: "DevPoint",
    data() {
        return {
            phoneNumber: "13566666666",
        };
    },
    mounted() {},
};

生命周期流程圖

要了解每個生命周期掛鉤何時觸發,下圖描述了每個生命周期掛鉤何時觸發。

Vue生命周期鉤子如何運行

運行生命周期掛鉤

要使用選項式API(Options API)運行任何生命周期掛鉤,可以將其添加到 Javascript 原型中。例如,如果使用 beforeCreate(),在檢測到新組件后觸發的第一個鉤子,可以像這樣添加它:

export default {
    name: "DevPoint",
    data() {
        return {
            someData: "20220609",
        };
    },
    mounted() {},
};

上面已經展示了不同鉤子發生的時機,接下來介紹各個鉤子各自做了什么,具體什么情況下觸發。

beforeCreate()

在組件初始化時調用,data()computed 屬性此時不可用。它對于調用不操作組件數據的 API 非常有用。如果 data() 在這個鉤子里面更新,一旦選項式API(Options API)加載完,更新將會將會丟失,變得無效。

created()

在實例處理完所有狀態操作后調用,可以訪問響應式數據、computed 屬性、methodswatch$el 是 Vue 存儲組件 HTML 的變量,在這個鉤子中還不可用,因為此時還沒有創建 DOM 元素。如果需要觸發 API 等不操作DOM元素的操作或者更新 data()則可以在這里進行。

beforeMount()

這個鉤子在渲染發生之前會被執行。模板已編譯,因此它存儲在內存中,但尚未附加到頁面,尚未創建任何 DOM 元素,因此 $el 在這個階段仍然不可用。

mounted()

組件已安裝并顯示在頁面上, $el 可被正常使用,在此階段可以從 Vue 訪問和操作 DOM。這只會在所有子組件完全安裝后觸發。當想在 DOM 加載后對其執行某些操作時,使用它很有用,比如可能更改其中的特定元素。

beforeUpdate()

有時,會通過在watch 中更新數據或通過用戶交互來更改 Vue 組件中的數據。當更改 data() 或導致組件重新渲染時,將觸發更新事件。在DOM重新渲染發生之前,beforeUpdate() 將立即觸發。在此事件之后,組件將重新渲染并使用最新數據進行更新。可以使用這個鉤子來訪問 DOM 的當前狀態,甚至可以更新 data()

updated()

觸發更新后,并且 DOM 已更新以最新數據重新渲染后,updated() 將觸發。這是在重新渲染后立即發生。現在,如果訪問$el DOM 內容或其他任何有關 DOM 內容的內容,它將顯示新的、重新渲染后的版本。如果有父組件,updated() 則首先調用子組件,然后調用父 updated() 掛鉤。

beforeUnmount()

如果一個組件被移除,那么它就會被卸載。在組件被完全移除之前,beforeUnmount() 觸發。此事件仍然可以訪問 DOM 元素以及與組件有關的任何其他內容。這在刪除事件中很有用,例如,可以使用此事件通知服務器用戶已刪除表中的節點。如果需要使用它們,仍然可以訪問 this.$el,以及 data()methodswatch

unmount()

一旦完全刪除,unmount() 事件就會觸發。這可用于清理其他數據或事件偵聽器或定時器,以讓知道該組件不再存在于頁面上。如果需要使用它們,仍然可以訪問訪問 this.$el,以及 data()methodswatch

組合式API(Composition API)中的生命周期鉤子

如果習慣使用選項式API(Options API),上面的鉤子會很有意義。如果主要使用 Vue 3,則需要習慣使用組合式API(Composition API)的風格。組合式API(Composition API)是 選項式API(Options API) 的補充,但使用鉤子的方式略有不同。

setup() 替換 created() 和 beforeCreated()

在組合式API(Composition API)中,created()beforeCreated() 不可訪問。被替換為 setup() ,在 created()beforeCreated() 實現的邏輯完全可以遷移到 setup() 中。

鉤子可以與 setup() 一起使用

Hooks 可以與 setup() 一起使用,如下:

export default {
    name: "DevPoint",
    data() {
        return {
            someData: "20220609",
        };
    },
    setup() {
        console.log("setup");
    },
    mounted() {
        console.log(this.$el);
    },
};

但是,可能會看到這樣做的另一種方式是使用組合式 API 函數在 setup() 函數中定義掛鉤,如果需要這樣做,鉤子的命名會略有不同:

  • beforeMount() 改為 onBeforeMount()

  • mounted() 改為 onMounted()

  • beforeUpdate() 改為 onBeforeUpdate()

  • updated() 改為 onUpdated()

  • beforeUnmount() 改為 onBeforeUnmount()

  • unmounted() 改為 onUnmounted()

這些函數的作用與前面介紹描述的完全相同,但調用方式略有不同。所有這些鉤子都必須在 setup() 函數或設置腳本中調用。例如,必須在 setup 函數中運行鉤子,如下所示:

export default {
    setup() {
        // 所有鉤子的邏輯代碼在這里
    },
};

或者如下:

<script setup>
// 所有鉤子的邏輯代碼在這里
</script>

因此,如果想使用這種方法調用鉤子,大概代碼如下:

<script>
export default {
    setup() {
        // 所有鉤子邏輯
        onBeforeMount(() => {
            //  beforeMount() 邏輯
        });
        onBeforeUpdate(() => {
            // beforeUpdate() 邏輯
        });
    },
};
</script>

感謝各位的閱讀,以上就是“Vue生命周期鉤子如何運行”的內容了,經過本文的學習后,相信大家對Vue生命周期鉤子如何運行這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

vue
AI

武山县| 台州市| 新闻| 光山县| 龙里县| 甘谷县| 柳江县| 上犹县| 临城县| 兰州市| 奎屯市| 济宁市| 高邑县| 丹江口市| 青海省| 乐业县| 乌鲁木齐县| 临清市| 西昌市| 屏东县| 依兰县| 吴旗县| 虹口区| 华宁县| 麟游县| 安顺市| 湘阴县| 海阳市| 宁德市| 西林县| 安庆市| 安达市| 海晏县| 新乡县| 冀州市| 嘉峪关市| 申扎县| 江阴市| 吉隆县| 丽水市| 湟源县|