1.添加我们的生命周期钩子
Vue3 中,要在 setup() 函数中使用生命周期来完成需求
导入:
import { onMounted, onUpdated, onUnmounted } from 'vue'
除去beforeCreate
和 created
之外,在我们的 setup
方法中,有9个旧的生命周期钩子,我们可以在setup
方法中访问
beforeCreate -> use setup()
created -> use setup()
beforeMount -> onBeforeMount
mounted -> onMounted
beforeUpdate -> onBeforeUpdate
updated -> onUpdated
beforeDestroy -> onBeforeUnmount
destroyed -> onUnmounted
errorCaptured -> onErrorCaptured
import { onBeforeMount, onMounted, onBeforeUpdate, onUpdated, onBeforeUnmount, onUnmounted, onActivated, onDeactivated, onErrorCaptured } from 'vue'
export default {
setup() {
onBeforeMount(() => {
// ...
})
onMounted(() => {
// ...
})
onBeforeUpdate(() => {
// ...
})
onUpdated(() => {
// ...
})
onBeforeUnmount(() => {
// ...
})
onUnmounted(() => {
// ...
})
onActivated(() => {
// ...
})
onDeactivated(() => {
// ...
})
onErrorCaptured(() => {
// ...
})
}
}
生命周期
这些生命周期钩子只能在 setup() 内部同步使用,因为他们依赖正在调用 setup() 的组件实例。
因为 setup
是围绕 beforeCreate
和 created
生命周期钩子运行的,所以不需要显式地定义它们。换句话说,在这些钩子中编写的任何代码都应该直接在 setup
函数中编写。
2.新增的钩子函数
onRenderTracked
onRenderTriggered
两个钩子函数都接收一个 DebuggerEvent
:
export default {
onRenderTriggered(e) {
debugger
// 检查哪个依赖性导致组件重新渲染
},
}
网友评论