Vue2 及 Vue3 生命週期改變

前言

Vue 是一個現代開發框架,擁有完尚的生態系,讓我們可以將須多元件客製化,做出組件,並且可重複利用,高擴充性。在開發組件時,每個組件都擁有自己的生命周期,Vue 組件會偵測每個變數值,是否有變,並且更新內容,今天要一個一個了解 Vue 的生命週期,讓大家有更多認識。

Vue 的生命週期

hook 名稱(v2.x Options Api) 對應 hook 名稱(v3.x Composition API) 說明
beforeCreate setup() vue 被建立實體尚未初始化
created setup() vue 被建立實體尚未初始化
beforeMount onBeforeMonut Vue 實體尚未與模板 (DOM 節點) 綁定
mounted onMonut Vue 實體尚未與模板 (DOM 節點) 綁定
beforeUpdate onBeforeUate 當狀態被變動時,畫面同步更新前
update onUpdated 當狀態被變動時,畫面已同步更新完成
beforeDestroy onBeforeUnmount Vue 實體物件被銷毀前
destroy onUnmounted Vue 實體物件被銷毀完畢

使用方式

Vue3 使用生命週期,使用方式非常直覺,當 Vue 執行到不一樣的生命週期時,就會自動執行不一樣的生命週期方法

<template>
    <div class="home">
        {{count}}
    </div>
</template>

<script>
import { onBeforeMount, onBeforeUnmount, onBeforeUpdate, onMounted, onUnmounted, onUpdated, ref } from '@vue/runtime-core';
export default {
    name: 'HomeView',
    setup() {
        const count = ref(0)

        onBeforeMount(() => {
            console.log('onBeforeMount')
        });

        onMounted(() => {
            console.log('onMounted')
        });

        onBeforeUpdate(() => {
            console.log('onBeforeUpdate');
        });

        onUpdated(() => {
            console.log('onUpdated');
        });

        onBeforeUnmount(() => {
            console.log('onBeforeUnmount');
        })

        onUnmounted(() => {
            console.log('onUnmounted');
        })

        return {
            count
        }
    }
};
</script>

補充說明

  • Vue3 可以向下相容 Vue2 的支援
  • 使用 Vue (Composition API) 時,不要使用 Vue (Options Api) 的 this,如果要使用 Composition API 的話,就全部使用 Composition API

留言

此網誌的熱門文章

Docker 之如何安裝 Docker 容器

Gitlab CI/CD 什麼是 CI/CD

Docker 之建立與使用 Docker Image 清理本地 Image