当前位置: 首页 > news >正文

vue3的自定义hooks怎么写?

写个hook函数去追踪鼠标位置:

没用hook前:

<script setup>
import { ref, onMounted, onUnmounted } from 'vue'const x = ref(0)
const y = ref(0)function update(event) {x.value = event.pageXy.value = event.pageY
}onMounted(() => window.addEventListener('mousemove', update))
onUnmounted(() => window.removeEventListener('mousemove', update))
</script><template>Mouse position is at: {{ x }}, {{ y }}</template>

用hook后:

//主页面:<template>Mouse position is at: {{ x }}, {{ y }}</template><script setup>
import { useMouse } from './mouse.js'const { x, y } = useMouse()
</script>

在同一目录下新建mouse.js文件,在文件内写入以下内容:

// mouse.js
import { ref, onMounted, onUnmounted } from 'vue'// 按照惯例,组合式函数名以“use”开头
export function useMouse() {// 被组合式函数封装和管理的状态const x = ref(0)const y = ref(0)// 组合式函数可以随时更改其状态。function update(event) {x.value = event.pageXy.value = event.pageY}// 一个组合式函数也可以挂靠在所属组件的生命周期上// 来启动和卸载副作用onMounted(() => window.addEventListener('mousemove', update))onUnmounted(() => window.removeEventListener('mousemove', update))// 通过返回值暴露所管理的状态return { x, y }
}

http://www.lryc.cn/news/481407.html

相关文章:

  • SpringBoot项目编译报错 类文件具有错误的版本 61.0, 应为 52.0
  • 【网络】应用层——HTTP协议
  • ServletContext介绍
  • 让AI帮我用java实现EasyExel读取图片—支持WPS嵌入图片
  • C# 实现对指定句柄的窗口进行键盘输入的实现
  • 深度学习之卷积问题
  • yum安装zabbix5.0升级php到74的办法
  • JavaWeb合集23-文件上传
  • 当AI遇上时尚:未来的衣橱会由机器人来打理吗?
  • 【初阶数据结构篇】二叉树OJ题
  • Windows系统中Oracle VM VirtualBox的安装
  • go语言使用总结(持续更新)
  • 如何在Android中自定义property
  • 机器学习5_支持向量机_原问题和对偶问题——MOOC
  • 索引的细节
  • LeetCode 540.有序数组中的单一元素
  • 【图文】【DIY便签】如何自行编译OPENCV使用动态库
  • WordPress文章自动提交Bing搜索引擎:PHP推送脚本教程
  • C++题目分享
  • 【Spring 框架】初识 Spring
  • 链表(Linkedlist)
  • 信息安全工程师(79)网络安全测评概况
  • 保研考研机试攻略:python笔记(3)
  • 刘卫国MATLAB程序设计与应用课后答案PDF第三版
  • 【鉴权】Web 会话管理:Cookie、Session 和 Token 深度对比
  • ArkTS--应用状态
  • yolov8涨点系列之引入CBAM注意力机制
  • java标准JavaBean类
  • MATLAB界面设计全攻略:从基础入门到高级应用
  • JavaScript API部分知识点