组合式 API 还提供了以下调试钩子函数:
<template>
<div class="about">
<h2>msg: {{msg}}</h2>
<hr />
<button @click="update">更新</button>
</div>
</template>
<script lang="ts">
import {
ref,
onMounted,
onUpdated,
onUnmounted,
onBeforeMount,
onBeforeUpdate,
onBeforeUnmount,
} from "vue";
export default {
beforeCreate() {
console.log("beforeCreate()");
},
created() {
console.log("created");
},
beforeMount() {
console.log("beforeMount");
},
mounted() {
console.log("mounted");
},
beforeUpdate() {
console.log("beforeUpdate");
},
updated() {
console.log("updated");
},
beforeUnmount() {
console.log("beforeUnmount");
},
unmounted() {
console.log("unmounted");
},
setup() {
const msg = ref("abc");
const update = () => {
msg.value += "--";
};
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 {
msg,
update,
};
},
};
</script>
<template>
<h2>App</h2>
<button @click="isShow=!isShow">切换</button>
<hr />
<Child v-if="isShow" />
</template>
<script lang="ts">
import Child from "./Child.vue";
export default {
data() {
return {
isShow: true,
};
},
components: {
Child,
},
};
</script>