博客推行版本更新,成果積累制度,已經寫過的博客還會再次更新,不斷地琢磨,高質量高數量都是要追求的,工匠精神是學習必不可少的精神。因此,大家有何建議歡迎在評論區踴躍發言,你們的支持是我最大的動力,你們敢投,我就敢肝 ...
Vue的生命周期
Vue中的生命周期是指組件從創建到銷毀的整個過程中,會觸發一系列的鉤子函數
Vue2中的生命周期
Vue2中的生命周期鉤子函數是在組件的不同階段執行的特定函數。這些鉤子函數允許開發者在組件的不同生命周期階段執行自定義的邏輯。
Vue2中的生命周期鉤子函數可以分為8個階段,按照執行順序依次是:
-
beforeCreate:在實例初始化之後,數據觀測和事件配置之前被調用。在這個階段,組件的數據和方法還未初始化,無法訪問到組件實例的屬性和方法。
-
created:在實例創建完成後被調用。在這個階段,組件的數據和方法已經初始化完成,可以訪問到組件實例的屬性和方法。但是此時組件還未掛載到DOM上。
-
beforeMount:在組件掛載到DOM之前被調用。在這個階段,組件已經完成了模板的編譯,但是還未將組件的模板渲染到真實的DOM中。
-
mounted:在組件掛載到DOM之後被調用。在這個階段,組件的模板已經被渲染到真實的DOM中,可以進行DOM操作和訪問DOM元素。
-
beforeUpdate:在組件更新之前被調用。在這個階段,組件的數據發生了變化,但是DOM尚未更新。可以在這個階段進行數據的修改和操作。
-
updated:在組件更新之後被調用。在這個階段,組件的數據已經更新完成,DOM也已經更新。可以進行DOM操作和訪問DOM元素。
-
beforeDestroy:在組件銷毀之前被調用。在這個階段,組件實例仍然可用,可以進行一些清理工作,如清除定時器、取消訂閱等。
-
destroyed:在組件銷毀之後被調用。在這個階段,組件實例已經被銷毀,無法再訪問到組件實例的屬性和方法。
除了這些常用的生命周期鉤子函數外,Vue2還提供了一些其他的鉤子函數,如activated和deactivated,用於處理組件在keep-alive組件中的緩存和激活狀態的切換。
通過在這些生命周期鉤子函數中編寫邏輯,開發者可以在組件的不同階段執行自定義的操作,如初始化數據、發送請求、訂閱事件、操作DOM等。這些生命周期鉤子函數的使用可以幫助開發者更好地控制組件的行為和交互。
beforeCreate
在Vue2中,beforeCreate是一個生命周期鉤子函數,它在實例被創建之初被調用。在這個階段,實例的數據觀測和事件機制都尚未初始化,因此在beforeCreate中無法訪問到data、computed、methods等實例屬性和方法。
下麵是一個案例來說明beforeCreate的使用:
<template>
<div>
<h1>{{ message }}</h1>
</div>
</template>
<script>
export default {
beforeCreate() {
console.log("beforeCreate hook");
this.message = "Hello Vue!";
},
created() {
console.log("created hook");
},
data() {
return {
message: ""
};
}
};
</script>
<style scoped>
h1 {
color: blue;
}
</style>
在上面的代碼中,我們定義了一個Vue組件,其中使用了beforeCreate鉤子函數。在beforeCreate中,我們列印了一條消息並給message屬性賦值。然後在模板中使用了message屬性來顯示文本。
當我們運行這個組件時,控制台會輸出"beforeCreate hook",然後頁面上會顯示"Hello Vue!"。
解釋代碼:
- 在beforeCreate鉤子函數中,我們可以執行一些初始化的操作,但是此時實例的數據和方法還沒有被初始化,因此無法訪問data、computed、methods等屬性和方法。
- 在created鉤子函數中,實例的數據和方法已經被初始化,可以訪問data、computed、methods等屬性和方法。
需要註意的是,beforeCreate鉤子函數是在實例被創建之前被調用的,因此在這個階段無法訪問到實例的DOM元素。如果需要操作DOM元素,可以在mounted鉤子函數中進行操作。
created函數
在Vue2中,created是一個生命周期鉤子函數,它在實例被創建之後被調用。在這個階段,實例的數據觀測和事件機制都已經初始化完成,可以訪問到data、computed、methods等實例屬性和方法。
下麵是一個案例來說明created的使用:
<template>
<div>
<h1>{{ message }}</h1>
</div>
</template>
<script>
export default {
created() {
console.log("created hook");
this.message = "Hello Vue!";
},
data() {
return {
message: ""
};
}
};
</script>
<style scoped>
h1 {
color: blue;
}
</style>
在上面的代碼中,我們定義了一個Vue組件,其中使用了created鉤子函數。在created中,我們列印了一條消息並給message屬性賦值。然後在模板中使用了message屬性來顯示文本。
當我們運行這個組件時,控制台會輸出"created hook",然後頁面上會顯示"Hello Vue!"。
解釋代碼:
- 在created鉤子函數中,實例的數據和方法已經被初始化,可以訪問data、computed、methods等屬性和方法。
- 在created鉤子函數中,我們可以執行一些初始化的操作,例如發送網路請求、訂閱事件等。
- 在created鉤子函數中,我們可以對實例的屬性進行修改和操作,例如給message屬性賦值。
需要註意的是,created鉤子函數是在實例被創建之後被調用的,因此在這個階段可以訪問到實例的DOM元素。如果需要操作DOM元素,可以在mounted鉤子函數中進行操作。
beforeMount
在Vue2中,beforeMount是一個生命周期鉤子函數,它在實例被掛載到DOM之前被調用。在這個階段,模板已經編譯完成,但是尚未將實例掛載到DOM上。
下麵是一個案例來說明beforeMount的使用:
<template>
<div>
<h1>{{ message }}</h1>
</div>
</template>
<script>
export default {
beforeMount() {
console.log("beforeMount hook");
this.message = "Hello Vue!";
},
mounted() {
console.log("mounted hook");
},
data() {
return {
message: ""
};
}
};
</script>
<style scoped>
h1 {
color: blue;
}
</style>
在上面的代碼中,我們定義了一個Vue組件,其中使用了beforeMount鉤子函數。在beforeMount中,我們列印了一條消息並給message屬性賦值。然後在模板中使用了message屬性來顯示文本。
當我們運行這個組件時,控制台會輸出"beforeMount hook",然後頁面上會顯示"Hello Vue!"。
解釋代碼:
- 在beforeMount鉤子函數中,模板已經編譯完成,但是尚未將實例掛載到DOM上,因此無法訪問到實例的DOM元素。
- 在beforeMount鉤子函數中,我們可以對實例的屬性進行修改和操作,例如給message屬性賦值。
- 在mounted鉤子函數中,實例已經被掛載到DOM上,可以訪問到實例的DOM元素。
需要註意的是,beforeMount鉤子函數是在實例被掛載到DOM之前被調用的,因此在這個階段無法訪問到實例的DOM元素。如果需要操作DOM元素,可以在mounted鉤子函數中進行操作。
mounted
在Vue2中,mounted是一個生命周期鉤子函數,它在實例被掛載到DOM之後被調用。在這個階段,實例已經被掛載到DOM上,可以訪問到實例的DOM元素。
下麵是一個案例來說明mounted的使用:
<template>
<div>
<h1>{{ message }}</h1>
</div>
</template>
<script>
export default {
mounted() {
console.log("mounted hook");
this.message = "Hello Vue!";
},
data() {
return {
message: ""
};
}
};
</script>
<style scoped>
h1 {
color: blue;
}
</style>
在上面的代碼中,我們定義了一個Vue組件,其中使用了mounted鉤子函數。在mounted中,我們列印了一條消息並給message屬性賦值。然後在模板中使用了message屬性來顯示文本。
當我們運行這個組件時,控制台會輸出"mounted hook",然後頁面上會顯示"Hello Vue!"。
解釋代碼:
- 在mounted鉤子函數中,實例已經被掛載到DOM上,可以訪問到實例的DOM元素。
- 在mounted鉤子函數中,我們可以執行一些需要操作DOM元素的操作,例如獲取DOM元素的尺寸、綁定事件等。
- 在mounted鉤子函數中,我們可以對實例的屬性進行修改和操作,例如給message屬性賦值。
需要註意的是,mounted鉤子函數是在實例被掛載到DOM之後被調用的,因此在這個階段可以訪問到實例的DOM元素。如果需要在實例被掛載到DOM之前執行一些操作,可以使用beforeMount鉤子函數。
beforeUpdate
在Vue2中,beforeUpdate是一個生命周期鉤子函數,它在數據更新之前被調用。在這個階段,實例的數據已經發生了改變,但是DOM尚未更新。
下麵是一個案例來說明beforeUpdate的使用:
<template>
<div>
<h1>{{ message }}</h1>
<button @click="updateMessage">Update Message</button>
</div>
</template>
<script>
export default {
data() {
return {
message: "Hello Vue!"
};
},
beforeUpdate() {
console.log("beforeUpdate hook");
},
methods: {
updateMessage() {
this.message = "Updated Message";
}
}
};
</script>
<style scoped>
h1 {
color: blue;
}
</style>
在上面的代碼中,我們定義了一個Vue組件,其中使用了beforeUpdate鉤子函數。在beforeUpdate中,我們列印了一條消息。我們還定義了一個按鈕,當點擊按鈕時,會更新message的值。
當我們運行這個組件時,當點擊按鈕時,控制台會輸出"beforeUpdate hook",然後頁面上會顯示"Updated Message"。
解釋代碼:
- 在beforeUpdate鉤子函數中,實例的數據已經發生了改變,但是DOM尚未更新。
- 在beforeUpdate鉤子函數中,我們可以執行一些在數據更新之前需要進行的操作,例如發送網路請求、更新其他數據等。
需要註意的是,beforeUpdate鉤子函數是在數據更新之前被調用的,因此在這個階段無法訪問到更新後的DOM。如果需要在數據更新之後執行一些操作,可以使用updated鉤子函數。
updated
在Vue2中,updated是一個生命周期鉤子函數,它在數據更新之後被調用。在這個階段,實例的數據已經發生了改變,並且DOM也已經更新完成。
下麵是一個案例來說明updated的使用:
<template>
<div>
<h1>{{ message }}</h1>
<button @click="updateMessage">Update Message</button>
</div>
</template>
<script>
export default {
data() {
return {
message: "Hello Vue!"
};
},
updated() {
console.log("updated hook");
},
methods: {
updateMessage() {
this.message = "Updated Message";
}
}
};
</script>
<style scoped>
h1 {
color: blue;
}
</style>
在上面的代碼中,我們定義了一個Vue組件,其中使用了updated鉤子函數。在updated中,我們列印了一條消息。我們還定義了一個按鈕,當點擊按鈕時,會更新message的值。
當我們運行這個組件時,當點擊按鈕時,頁面上會顯示"Updated Message",並且控制台會輸出"updated hook"。
解釋代碼:
- 在updated鉤子函數中,實例的數據已經發生了改變,並且DOM也已經更新完成。
- 在updated鉤子函數中,我們可以執行一些在數據更新之後需要進行的操作,例如操作更新後的DOM元素、執行一些額外的邏輯等。
需要註意的是,updated鉤子函數是在數據更新之後被調用的,因此在這個階段可以訪問到更新後的DOM。如果需要在數據更新之前執行一些操作,可以使用beforeUpdate鉤子函數。
beforeDestroy
在Vue2中,beforeDestroy是一個生命周期鉤子函數,它在實例銷毀之前被調用。在這個階段,實例仍然完全可用,可以訪問到實例的屬性和方法。
下麵是一個案例來說明beforeDestroy的使用:
<template>
<div>
<h1>{{ message }}</h1>
<button @click="destroyComponent">Destroy Component</button>
</div>
</template>
<script>
export default {
data() {
return {
message: "Hello Vue!"
};
},
beforeDestroy() {
console.log("beforeDestroy hook");
},
methods: {
destroyComponent() {
this.$destroy();
}
}
};
</script>
<style scoped>
h1 {
color: blue;
}
</style>
在上面的代碼中,我們定義了一個Vue組件,其中使用了beforeDestroy鉤子函數。在beforeDestroy中,我們列印了一條消息。我們還定義了一個按鈕,當點擊按鈕時,會銷毀組件。
當我們運行這個組件時,當點擊按鈕時,控制台會輸出"beforeDestroy hook",然後組件會被銷毀。
解釋代碼:
- 在beforeDestroy鉤子函數中,實例仍然完全可用,可以訪問到實例的屬性和方法。
- 在beforeDestroy鉤子函數中,我們可以執行一些在實例銷毀之前需要進行的操作,例如清除定時器、取消訂閱等。
需要註意的是,beforeDestroy鉤子函數是在實例銷毀之前被調用的,因此在這個階段實例仍然可用。如果需要在實例銷毀之後執行一些操作,可以使用destroyed鉤子函數。
destoryed
在Vue2中,destroyed是一個生命周期鉤子函數,它在實例銷毀之後被調用。在這個階段,實例已經被完全銷毀,無法再訪問到實例的屬性和方法。
下麵是一個案例來說明destroyed的使用:
<template>
<div>
<h1>{{ message }}</h1>
<button @click="destroyComponent">Destroy Component</button>
</div>
</template>
<script>
export default {
data() {
return {
message: "Hello Vue!"
};
},
destroyed() {
console.log("destroyed hook");
},
methods: {
destroyComponent() {
this.$destroy();
}
}
};
</script>
<style scoped>
h1 {
color: blue;
}
</style>
在上面的代碼中,我們定義了一個Vue組件,其中使用了destroyed鉤子函數。在destroyed中,我們列印了一條消息。我們還定義了一個按鈕,當點擊按鈕時,會銷毀組件。
當我們運行這個組件時,當點擊按鈕時,組件會被銷毀,控制台會輸出"destroyed hook"。
解釋代碼:
- 在destroyed鉤子函數中,實例已經被完全銷毀,無法再訪問到實例的屬性和方法。
- 在destroyed鉤子函數中,我們可以執行一些在實例銷毀之後需要進行的操作,例如清除全局事件監聽器、釋放資源等。
需要註意的是,destroyed鉤子函數是在實例銷毀之後被調用的,因此在這個階段無法再訪問到實例的屬性和方法。如果需要在實例銷毀之前執行一些操作,可以使用beforeDestroy鉤子函數。
Vue3中的生命周期
Vue 3的生命周期相對於Vue 2有所改變,主要是為了更好地支持Composition API。以下是Vue 3的生命周期:
-
setup:在組件實例化之前被調用。在這個階段,可以進行組件的初始化工作,包括響應式數據的設置、計算屬性的定義、方法的定義等。
-
beforeCreate:在組件實例創建之前被調用。在這個階段,可以進行一些初始化工作,但是無法訪問到響應式數據和組件實例。
-
created:在組件實例創建完成後被立即調用。在這個階段,可以訪問到響應式數據和組件實例,可以進行一些數據的初始化操作。
-
beforeMount:在組件掛載開始之前被調用。在這個階段,模板已經編譯完成,但是還未掛載到頁面上。
-
mounted:在組件掛載完成後被調用。在這個階段,組件已經被掛載到頁面上,可以進行DOM操作。
-
beforeUpdate:在組件更新之前被調用。在這個階段,可以進行一些數據的修改操作。
-
updated:在組件更新之後被調用。在這個階段,可以執行依賴於DOM的操作。
-
beforeUnmount:在組件卸載之前被調用。在這個階段,組件仍然可用,可以進行一些清理工作。
-
unmounted:在組件卸載之後被調用。在這個階段,組件的指令和事件監聽器已經被移除,組件實例被銷毀。
通過這些生命周期鉤子函數,我們可以在不同的階段執行相應的操作,比如在setup階段進行組件的初始化,mounted階段進行DOM操作,beforeUnmount階段進行資源清理等。同時,Vue 3還引入了更靈活的Composition API,可以更好地組織和復用組件邏輯。
beforeMount
在Vue3中,beforeMount是一個選項式API的生命周期函數,它在掛載開始之前被調用。在beforeMount階段,模板編譯已完成,但是尚未將模板渲染到DOM中。
下麵是一個使用beforeMount的案例,通過在beforeMount中修改DOM元素的樣式來展示其使用方法:
<template>
<div>
<p ref="message">{{ message }}</p>
</div>
</template>
<script setup>
import { onBeforeMount, ref } from 'vue';
const message = ref('Hello, Vue3!');
onBeforeMount(() => {
console.log('beforeMount hook');
const messageElement = document.querySelector('#message');
messageElement.style.color = 'red';
});
</script>
<style scoped>
/* 樣式 */
</style>
在上述代碼中,我們首先導入了onBeforeMount和ref函數。然後,在onBeforeMount函數中,我們列印了一條消息,並通過document.querySelector方法獲取到<p>元素的引用,然後修改其樣式為紅色。
當組件掛載開始之前,beforeMount函數會被調用,控制台會輸出'beforeMount hook',同時<p>元素的文字顏色會變為紅色。
需要註意的是,beforeMount函數中可以訪問到組件實例的數據和方法,因為此時組件實例已經創建完成。同時,beforeMount函數中可以直接操作DOM元素,但是建議使用Vue的響應式數據來管理DOM的狀態,以便更好地利用Vue的特性。
總結:beforeMount函數在掛載開始之前被調用,可以用於在DOM渲染之前進行一些操作,例如修改DOM元素的樣式、添加事件監聽器等。
mounted
在Vue3中,mounted是一個選項式API的生命周期函數,它在組件掛載到DOM之後調用。在mounted階段,組件已經被渲染到DOM中,可以進行DOM操作和訪問DOM元素。
下麵是一個使用mounted的案例,通過在mounted中添加一個事件監聽器來展示其使用方法:
<template>
<div>
<button ref="button">Click me</button>
</div>
</template>
<script setup>
import { onMounted, ref } from 'vue';
onMounted(() => {
console.log('mounted hook');
const buttonElement = document.querySelector('#button');
buttonElement.addEventListener('click', handleClick);
});
function handleClick() {
console.log('Button clicked');
}
</script>
<style scoped>
/* 樣式 */
</style>
在上述代碼中,我們使用onMounted函數來註冊一個回調函數,在組件掛載到DOM之後調用。在回調函數中,我們列印了一條消息,並通過document.querySelector方法獲取到<button>元素的引用,然後添加了一個點擊事件的監聽器。
當組件掛載到DOM之後,mounted函數會被調用,控制台會輸出'mounted hook'。同時,當點擊按鈕時,控制台會輸出'Button clicked'。
需要註意的是,mounted函數中可以訪問到組件實例的數據和方法,因為此時組件已經被渲染到DOM中。同時,mounted函數中可以進行一些需要訪問DOM元素的操作,例如添加事件監聽器、初始化第三方庫等。
總結:mounted函數在組件掛載到DOM之後調用,可以用於進行一些需要訪問DOM元素的操作,例如添加事件監聽器、初始化第三方庫等。
beforeUpdate
在Vue3中,beforeUpdate是一個選項式API的生命周期函數,它在組件更新之前調用。在beforeUpdate階段,組件的數據已經發生了改變,但是DOM尚未更新。
下麵是一個使用beforeUpdate的案例,通過在beforeUpdate中列印更新前後的數據來展示其使用方法:
<template>
<div>
<p>{{ message }}</p>
<button @click="updateMessage">Update Message</button>
</div>
</template>
<script setup>
import { onBeforeUpdate, ref } from 'vue';
const message = ref('Hello, Vue3!');
onBeforeUpdate(() => {
console.log('beforeUpdate hook');
console.log('Previous message:', message.value);
});
function updateMessage() {
message.value = 'Updated message';
}
</script>
<style scoped>
/* 樣式 */
</style>
在上述代碼中,我們使用beforeUpdate函數來註冊一個回調函數,在組件更新之前調用。在回調函數中,我們列印了一條消息,並輸出了更新前的message的值。
在模板中,我們展示了message的值,並提供了一個按鈕,點擊按鈕會調用updateMessage函數來更新message的值。
當點擊按鈕時,updateMessage函數會被調用,message的值會發生改變。然後,beforeUpdate函數會被調用,控制台會輸出'beforeUpdate hook'和'Previous message: Hello, Vue3!',即更新前的message的值。
需要註意的是,beforeUpdate函數中可以訪問到組件實例的數據和方法,因為此時組件的數據已經發生了改變。同時,beforeUpdate函數中可以進行一些在組件更新之前的操作,例如獲取更新前的數據、做一些準備工作等。
總結:beforeUpdate函數在組件更新之前調用,可以用於進行一些在組件更新之前的操作,例如獲取更新前的數據、做一些準備工作等。
updated
在Vue3中,updated是一個選項式API的生命周期函數,它在組件更新完成後調用。在updated階段,組件的數據已經發生了改變,並且DOM也已經更新完畢。
下麵是一個使用updated的案例,通過在updated中列印更新後的數據來展示其使用方法:
<template>
<div>
<p>{{ message }}</p>
<button @click="updateMessage">Update Message</button>
</div>
</template>
<script setup>
import { onUpdated, ref } from 'vue';
const message = ref('Hello, Vue3!');
onUpdated(() => {
console.log('updated hook');
console.log('Updated message:', message.value);
});
function updateMessage() {
message.value = 'Updated message';
}
</script>
<style scoped>
/* 樣式 */
</style>
在上述代碼中,我們使用onUpdated函數來註冊一個回調函數,在組件更新完成後調用。在回調函數中,我們列印了一條消息,並輸出了更新後的message的值。
在模板中,我們展示了message的值,並提供了一個按鈕,點擊按鈕會調用updateMessage函數來更新message的值。
當點擊按鈕時,updateMessage函數會被調用,message的值會發生改變。然後,onUpdated函數會被調用,控制台會輸出'updated hook'和'Updated message: Updated message',即更新後的message的值。
需要註意的是,onUpdated函數中可以訪問到組件實例的數據和方法,因為此時組件的數據已經發生了改變,並且DOM也已經更新完畢。同時,onUpdated函數中可以進行一些在組件更新完成後的操作,例如獲取更新後的數據、執行一些額外的邏輯等。
總結:updated函數在組件更新完成後調用,可以用於進行一些在組件更新完成後的操作,例如獲取更新後的數據、執行一些額外的邏輯等。
beforeUnmount
在Vue3中,beforeUnmount是一個選項式API的生命周期函數,它在組件卸載之前調用。在beforeUnmount階段,組件即將從DOM中被移除。
下麵是一個使用beforeUnmount的案例,通過在beforeUnmount中執行一些清理操作來展示其使用方法:
<template>
<div>
<p>{{ message }}</p>
<button @click="unmountComponent">Unmount Component</button>
</div>
</template>
<script setup>
import { onBeforeUnmount, ref } from 'vue';
const message = ref('Hello, Vue3!');
onBeforeUnmount(() => {
console.log('onBeforeUnmount hook');
// 執行一些清理操作
});
function unmountComponent() {
// 卸載組件
}
</script>
<style scoped>
/* 樣式 */
</style>
在上述代碼中,我們使用onBeforeUnmount函數來註冊一個回調函數,在組件卸載之前調用。在回調函數中,我們列印了一條消息,並可以執行一些清理操作,例如取消訂閱、清除定時器等。
在模板中,我們展示了message的值,並提供了一個按鈕,點擊按鈕會調用unmountComponent函數來卸載組件。
當點擊按鈕時,unmountComponent函數會被調用,組件會被卸載。然後,onBeforeUnmount函數會被調用,控制台會輸出'onBeforeUnmount hook',即組件即將被卸載。
需要註意的是,onBeforeUnmount函數中可以訪問到組件實例的數據和方法,因為此時組件即將被卸載。同時,onBeforeUnmount函數中可以進行一些在組件卸載之前的清理操作,例如取消訂閱、清除定時器等。
總結:onBeforeUnmount函數在組件卸載之前調用,可以用於進行一些在組件卸載之前的清理操作,例如取消訂閱、清除定時器等。
unmounted
在Vue3中,unmounted是一個選項式API的生命周期函數,它在組件卸載完成後調用。在unmounted階段,組件已經從DOM中被移除。
下麵是一個使用unmounted的案例,通過在unmounted中執行一些清理操作來展示其使用方法:
<template>
<div>
<p>{{ message }}</p>
<button @click="unmountComponent">Unmount Component</button>
</div>
</template>
<script setup>
import { onUnmounted, ref } from 'vue';
const message = ref('Hello, Vue3!');
onUnmounted(() => {
console.log('unmounted hook');
// 執行一些清理操作
});
function unmountComponent() {
// 卸載組件
}
</script>
<style scoped>
/* 樣式 */
</style>
在上述代碼中,我們使用onUnmounted函數來註冊一個回調函數,在組件卸載完成後調用。在回調函數中,我們列印了一條消息,並可以執行一些清理操作,例如取消訂閱、清除定時器等。
在模板中,我們展示了message的值,並提供了一個按鈕,點擊按鈕會調用unmountComponent函數來卸載組件。
當點擊按鈕時,unmountComponent函數會被調用,組件會被卸載。然後,onUnmounted函數會被調用,控制台會輸出'unmounted hook',即組件已經被卸載。
需要註意的是,onUnmounted函數中可以訪問到組件實例的數據和方法,因為此時組件已經被卸載。同時,onUnmounted函數中可以進行一些在組件卸載完成後的清理操作,例如取消訂閱、清除定時器等。
總結:unmounted函數在組件卸載完成後調用,可以用於進行一些在組件卸載完成後的清理操作,例如取消訂閱、清除定時器等。
在黑夜裡夢想著光,心中覆蓋悲傷,在悲傷里忍受孤獨,空守一絲溫暖。 我的淚水是無底深海,對你的愛已無言,相信無盡的力量,那是真愛永在。 我的信仰是無底深海,澎湃著心中火焰,燃燒無盡的力量,那是忠誠永在。