Skip to content

生命周期钩子

生命周期钩子让开发者有机会再特定的时机(比如:初始化,设置好数据侦听,编译模板,挂载到DOM,更新,销毁等)执行代码

生命周期示意图

img.png

注册周期钩子

onMounted钩子来说,它可以在组件完成渲染并创建DOM节点后执行代码

js
import { onMounted } from 'vue'
export default {
  setup() {
    onMounted(() => {
      console.log('组件挂载完成')
    })
  },
}
javascript
<script setup>
  import {onMounted} from 'vue' onMounted(() => {console.log(`the component is now mounted.`)})
</script>

生命周期钩子是在组件初始化时同步注册的,,Vue会自动将回调函数注册到当前组件实例上,所以不要这样做:

js
setTimeout(() => {
  onMounted(() => {
    // 异步注册时当前组件实例已丢失
    // 这将不会正常工作
  })
}, 100)

但是这并不意味着,生命周期钩子只能在setup函数中调用,实际上,可以在任何地方调用它们,只要调用栈是同步的,且最终起源于setup()就可以