customRef:可以自定义ref,在数据发生变化时做一些其它操作,灵活处理逻辑 基本使用:使数据发生变化后过一秒在更新页面 // hooks\useMsgRef.ts import {customRef} from "vue"; export default (initValue: string, delay: number) => { let timer: any return customRef((track, trigger) => { return { get: () => { track() //通知vue监听数据变化 return initValue }, set: (value: string) => { clearTimeout(timer) timer = setTimeout(() => { initValue = value trigger() // 数据变化后通知vue更新页面 }, delay) } } }) } customRef接收一个函数,该函数接收两个方法track与trigger,且需要返回包含有get、set方法的对象。get用于给使用者返回数据,set用于接收新的数据。 track:通知vue监听数据变化 trigger:数据变化后通知vue更新页面 在组件中使用 <template> <p>{{ msg }}</p> <p><input type="text" v-model="msg"></p> </template> <script setup lang="ts"> import useMsgRef from "@/hooks/useMsgRef" let msg = useMsgRef("奥特曼",2000)