vue3生命周期和hook函数四

Vue3中生命周期钩子发生了变化,beforeDestroy和destroyed被替换为beforeUnmount和unmounted。组合式API中,beforeCreate和created对应setup,其他如beforeMount到unmounted都有对应的on*钩子函数。值得注意的是,setup先执行,然后是带有on前缀的钩子。此外,通过创建自定义hook文件,可以实现类似Vue2中mixin的功能,用于代码复用和提高效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

setup() {
    let sum = ref(0)
    console.log('---setup---');
    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 {
      sum,
    }
  }
  • vue3生命周期:最后一对钩子由beforeDestroy和Destroy改为beforeUNmount和unmounted;
  • 组合式API生命周期(写在setup中):beforeCreate和created相当于setup,在setup中beforeMount->onBeforeMount;mounted->onMounted;beforeUpdate->onBeforeUpdate;updated->onUpdated;beforeUNmount->onBeforeUNmount;unmounted->onUnmounted;配置项形式和组合式的有一个先后顺序,setup先执行,然后带有on会先执行;
//usePoint.js
import {reactive, onMounted, onUnmounted} from 'vue'
export default function() {
  // 实现鼠标打点
  let point = reactive({
    x:0,
    y:0
  })
  function savePoint(event) {
    point.x = event.pageX
    point.y = event.pageY
    console.log(event.pageX,event.pageY);
  }
  onMounted(() => {
    window.addEventListener('click' ,savePoint)
  })
  onUnmounted(() => {
    window.removeEventListener('click', savePoint)
  })
  return point
}
//demo.vue
import {ref} from 'vue'
import usePoint from '../hooks/usePoint'
export default {
  name: "Demo",
  setup() {
    let sum = ref(0)
    let point = usePoint()
    return {
      sum,
      point
    };
  },
};
  • 自定义hook函数:写一个hooks文件夹爱,在里面写js文件,文件里面是一套完整的功能,本质是一个函数,把setup中使用的组合API进行封装,类似于vue2中mixin,用于代码复用;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值