Vue学习笔记-Vue3中的customRef

作用

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

案例

描述:向输入框中输入内容,在下方延迟1秒展示输入内容

代码:

javascript 复制代码
<template>
  <input type="text" v-model="keyword">
  <h3>{{keyword}}</h3>
</template>

<script>
import {customRef} from 'vue'
export default {
  name: 'App',
  setup(){
    function  myRef(value){
      return customRef((track, trigger)=>{
        let timer
          return{
            get(){
              console.log('正在读取数据...:',value)
              //通知vue追踪value的变化
              track();
              return value
            },
            set(newValue){
              console.log('数据发生改变,新数据为:',newValue)
              clearTimeout(timer)
              // //将新值赋给value
              // value = newValue;
              // //通知vue重新解析模板
              // trigger();
              timer = setTimeout(()=>{
                value = newValue;
                trigger();
              },1000)
            }
          }
      })
    }
    //写一个自定义的myRef
    let keyword = myRef('hello')
    return{
      keyword
    }
  },
}
</script>

<style>

</style>
相关推荐
ZhengEnCi1 小时前
Q02-Vue-React-index.html完全指南
vue.js·react.js·html
晴虹2 小时前
vue3-scroll-more:横向滚动条-元素或页签过多滚动显示处理的组件
前端·vue.js
Forever7_2 小时前
尤雨溪转发:Vue-tui 0.1 发布!Vue 终于杀进终端!
vue.js
dkbnull2 小时前
Vue 虚拟 DOM Diff 算法与 key 机制原理
vue.js
前端切图崽_小郭18 小时前
虚拟滚动:静态 vs 动态的核心差异与实现?
vue.js
白鲸开源20 小时前
Apache SeaTunnel Zeta Engine 的 Basic Auth 是怎么工作的?
java·vue.js·github
卤蛋fg620 小时前
vue 甘特图 vxe-gantt 的使用(四):周视图的渲染
vue.js
卤蛋fg620 小时前
vue 甘特图 vxe-gantt 的使用(三):月视图的渲染
vue.js
卤蛋fg61 天前
vue 甘特图 vxe-gantt 的使用(一):年视图的渲染
vue.js
前端开发爱好者1 天前
支持 110 种文件预览!兼容 Vue、React、Svelte!
前端·javascript·vue.js