1、Hooks封装

import { ref } from 'vue';import linkHooks from '@/hooks/linkTo';/* 参数1:右边路由;参数2:左边路由;参数3:绑定的DOM元素 */export default function(left,right,dom){   const [flag, startX, endX,isshow] = [ref(false), ref(0), ref(0),ref(false)]   const { linkTo } = linkHooks()   function start(e) {  //记录开始滑动屏幕的X轴的地位      flag.value = true;      startX.value = e.touches[0].clientX;      endX.value = dom.value.offsetLeft;   }   function end(e) {      if (flag.value) {         flag.value = false;         const moveX = e.changedTouches[0].clientX - startX.value;  //计算滑动的间隔         if (moveX < -80) {            isshow.value = true;            linkTo(right)         } else if (moveX > 80) {            isshow.value = true;            linkTo(left)         }      }   }   return {      start,      end,   }}

2、组件中应用

<script setup>import slideHooks from '@/hooks/slide';const { start,end } = slideHooks('Separation','meeting',destroy)</script><template> <div class="meeting width" ref="destroy" @touchstart="start($event)" @touchend="end($event)"></div></template>