0

0

0

修罗

站点介绍

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

vue3 - customRef

修罗 2021-11-16 1324 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

日历

2026年01月

    123
45678910
11121314151617
18192021222324
25262728293031

文章目录

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