0

0

0

修罗

站点介绍

只有了解事实才能获得真正的自由

vue3 - customRef

修罗 2021-11-16 1243 0条评论 vue3

首页 / 正文

https://cn.vuejs.org/api/reactivity-advanced.html#customref

创建一个自定义的ref,并对其依赖项跟踪和更新触发进行显式控制:

  • 它需要一个工厂函数,该函数接受 tracktrigger 函数作为参数;
  • 并且应该返回一个带有 getset 的对象;

这里我们使用一个官方的案例:

  • 对双向绑定的属性进行debounce(防抖)的操作;

封装useDebouncedRef的工具Hook:

import { customRef } from 'vue';

export function useDebouncedRef(value, delay = 200) {
  let timeout;
  return customRef((track, trigger) => {
    return {
      get() {
        track();
        return value;
      },
      set(newValue) {
        clearTimeout(timeout);
        timeout = setTimeout(() => {
          value = newValue;
          trigger();
        }, delay);
      }
    }
  })
}

在组件界面中使用:

<template>
  <div>
    <input v-model="message">
    <h2>{{message}}</h2>
  </div>
</template>

<script>
  import { useDebouncedRef } from '../hooks/useDebounceRef';

  export default {
    setup() {
      const message = useDebouncedRef("Hello World");
      return {
        message
      }
    }
  }
</script>

评论(0)


最新评论

  • 1

    1

  • 1

    1

  • -1' OR 2+158-158-1=0+0+0+1 or 'TKCTZnRa'='

    1

  • 1

    1

  • 1

    1

  • 1

    1

  • 1

    1

  • @@5Qa2D

    1

  • 1

    1

  • 1

    1

日历

2025年09月

 123456
78910111213
14151617181920
21222324252627
282930    

文章目录

推荐关键字: Linux webpack js 算法 MongoDB laravel JAVA jquery javase redis