import{ onMounted, onUnmounted, ref }from"vue";exportdefaultfunctionuseMousePosition(){// 初始化坐标const x =ref(0);const y =ref(0);// 挂载后绑定鼠标点击监听onMounted(()=>{
window.addEventListener('click', getPosition);})// 页面销毁前解绑点击监听onUnmounted(()=>{
window.addEventListener('click', getPosition);})// 获取点击鼠标的坐标函数constgetPosition=(e: MouseEvent)=>{
x.value = e.pageX;
y.value = e.pageY;}return{ x, y };}
diyHook.vue
<template><divid="app"><h2>当前鼠标点击坐标</h2><h2>x轴: {{ x }} px</h2><h2>y轴: {{ y }} px</h2></div></template><scriptlang="ts">import{ defineComponent }from"vue";import useMousePosition from"../hooks/UsePosition";exportdefaultdefineComponent({setup(){const{ x, y }=useMousePosition();return{ x, y };},});</script>