customRef 函数
- 使用 customRef 函数创建一个自定义的 ref ,并对其依赖项跟踪和更新触发进行显示控制
- customRef 接收一个函数作为参数,这个函数接收两个函数作为参数 track (通知vue需要追踪后续内容的变化) 和 trigger (通知vue重新解析模板)。
<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>