customRef

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>
  • 实现自定义 myref 延迟更新模板
<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>

 

上一篇:关于 MySQL trigger 的 after update 的一点理解


下一篇:【数字信号处理】上机实验