自定义的useMsgRef.ts
import { customRef } from 'vue' export default function (initValue: string, delay: number) { let timer: number //track(跟踪), trigger(触发) let msg = customRef((track, trigger) => { return { get() { track() return initValue }, set(value) { clearTimeout(timer) //这里也可以从http获取数据 赋给initValue timer = setTimeout(() => { initValue = value trigger() }, delay)//延时delay(毫秒)执行 } } }) return msg }
调用自定义的useMsgRef方法
<template> <p>{{ msg }}</p> <input type="text" v-model="msg"> </template> <script setup lang="ts"> import useMsgRef from './useMsgRef' //延时1秒执行 响应式数据 let msg = useMsgRef('LuoFenMing', 1000) </script> <style scoped></style>
本文来自 www.luofenming.com