vue3-生命周期

生命周期

生命周期
  • vue 组件实例都有自己的一个生命周期

  • 从创建->初始化数据->编译模版->挂载实例到 DOM->数据变更后更新 DOM ->卸载组件

  • 生命周期简单说就是 vue 实例从创建到销毁的过程

生命周期钩子

在各个周期运行时,会执行钩子函数,让开发者有机会在特定阶段运行自己的代码。这就是生命周期钩子

官方示意图:

生命周期钩子函数

钩子函数说明
beforeCreate在实例初始化之后 调用
created实例已经创建完成之后调用
beforeMount在挂载开始之前被调用
mounted在组件挂载完成后执行
beforeUpdate在组件即将因为响应式状态变更而更新其 DOM 树之前调用
updated在组件因为响应式状态变更而更新其 DOM 树之后调用
beforeDestroy实例销毁之前调用
destroyed实例销毁后调用
<script lang="ts" setup>
import {
  ref,
  reactive,
  onBeforeMount, // 在组件挂载之前执行的函数
  onMounted,
  onBeforeUpdate, // 在组件修改之前执行的函数
  onUpdated,
  onBeforeUnmount, // 在组件卸载之前执行的函数
  onUnmounted
} from 'vue'

// setup 替代了 beforeCreate   setup

// reactive 创建响应式对象
let data = reactive({
  // 定义响应式数据
  count: 0
})

const clickMe = () => {
  data.count++
  alert('hi')
}

console.log('1-开始创建组件-----setup()')

onBeforeMount(() => {
  console.log('2-组件挂载到页面之前执行-----onBeforeMount()')
})

onMounted(() => {
  console.log('3-组件挂载到页面之后执行-----onMounted()')
})
onBeforeUpdate(() => {
  console.log('4-组件更新之前-----onBeforeUpdate()')
})

onUpdated(() => {
  console.log('5-组件更新之后-----onUpdated()')
})

onBeforeUnmount(() => {
  console.log('6-组件卸载之前-----onBeforeUnmount()')
})
onUnmounted(() => {
  console.log('7-组件卸载之后-----onUnmounted()')
})
</script>

<template>
  <div class="container">
    <p>数字为{{ data.count }}</p>
    <button @click="clickMe">修改数据</button>
  </div>
</template>

<style lang="scss" scoped>
.container {
}
</style>

VUE3 与 VUE2 生命周期的对比

setup 方式

  vue2            vue3
  
beforeCreate  -> setup()
created       -> setup()
beforeMount   -> onBeforeMount
mounted       -> onMounted
beforeUpdate  -> onBeforeUpdate
updated       -> onUpdated
beforeDestroy -> onBeforeUnmount
destroyed     -> onUnmounted
activated     -> onActivated
deactivated   -> onDeactivated
errorCaptured -> onErrorCaptured

通过这样对比,

  1. 可以很容易的看出 vue3 的钩子函数基本是再 vue2 的基础上加了一个 on,但也有两个钩子函数发生了变化。

  2. BeforeDestroy 变成了 onBeforeUnmount

  3. destroyed 变成了 onUnmounted

尤大的介绍是 mount 比 Destroy 更形象,也和 beforeMount 相对应。

onServerPrefetch() (ssr) 在组件实例在服务器上被渲染之前调用

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值