vue3 【实战】封装 “心跳“ 组件

需求描述

在控制台每秒打印一个"hello"

代码实现

html 复制代码
<script setup>
import { onMounted, onBeforeUnmount, ref } from "vue";

const timer = ref(0);

onMounted(() => {
  function fn() {
    console.log("hello");
    timer.value = setTimeout(fn, 1000);
  }

  timer.value = setTimeout(fn, 1000);
});

onBeforeUnmount(() => {
  clearTimeout(timer.value);
});
</script>

<template>
  <div>心跳</div>
</template>

技术要点

  • 卸载组件时,一定要记得清除定时器、自定义事件、DOM事件,避免内存泄漏/其他业务干扰
  • 本例中使用 setTimeout 递归比 setInterval 更好,因为若页面出现卡顿,setInterval 也会中断
相关推荐
Irene19914 小时前
Vue 官方推荐:kebab-case(短横线命名法)
javascript·vue.js
一只小阿乐6 小时前
vue-web端实现图片懒加载的方
前端·javascript·vue.js
+VX:Fegn08956 小时前
计算机毕业设计|基于springboot + vue小型房屋租赁系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
萌萌哒草头将军7 小时前
Node.js 存在多个严重安全漏洞!官方建议尽快升级🚀🚀🚀
vue.js·react.js·node.js
这个图像胖嘟嘟7 小时前
前端开发的基本运行环境配置
开发语言·javascript·vue.js·react.js·typescript·npm·node.js
北辰alk7 小时前
Vue 自定义指令生命周期钩子完全指南
前端·vue.js
是小崔啊7 小时前
03-vue2
前端·javascript·vue.js
北辰alk9 小时前
Vue 路由跳转完全指南:8种跳转方式深度解析
vue.js
北辰alk9 小时前
Vue v-for 遍历对象顺序完全指南:从混乱到可控
vue.js
m0_471199639 小时前
【场景】如何快速接手一个前端项目
前端·vue.js·react.js