<template> <input type="text" v-model="keyWord"> <div>{{keyWord}}</div> </template> <script> import {customRef, } from "vue"; export default { setup() { // 自定义一个 myRef function myRef(value) { return customRef((track, trigger) => { return { get() { track() // 追踪后续数据的变化 return value }, set(newValue) { value = newValue trigger() // 重新解析模板 } } }) } let keyWord = myRef('hello') return { keyWord, } } } </script>
<template> <input type="text" v-model="keyWord"> <div>{{keyWord}}</div> </template> <script> import {customRef, } from "vue"; export default { setup() { // 自定义一个 myRef function myRef(value, delay) { let timer = null; return customRef((track, trigger) => { return { get() { track() // 追踪后续数据的变化 return value }, set(newValue) { value = newValue timer = null timer = setTimeout(() => { trigger() // 重新解析模板 }, delay) } } }) } let keyWord = myRef('hello', 3000) return { keyWord, } } } </script>