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>
相关推荐
oceanweave20 分钟前
【k8s学习之CSI】理解 LVM 存储概念和相关操作
学习·容器·kubernetes
DCTANT22 分钟前
【原创】vue-element-admin-plus完成确认密码功能,并实时获取Form中表单字段中的值
前端·javascript·vue.js·elementui·typescript
花之亡灵1 小时前
.net6 中实现邮件发送
笔记·c#·.net·代码规范
LuoYaFu1 小时前
文件上传做题记录
笔记
悲且狂2 小时前
Vue环境搭建:vue+idea
前端·vue.js·intellij-idea
吴梓穆2 小时前
UE5学习笔记 FPS游戏制作43 UI材质
笔记·学习·ue5
LoveCan2 小时前
ant-design-vue自动计算a-table每一列的宽度的实现
前端·vue.js
hepherd2 小时前
Vue学习笔记 - 逻辑复用 - 组合式函数
前端·vue.js
喝西瓜汁的兔叽Yan2 小时前
探索 Vue 3 中 vue-router 的 router.resolve () API
前端·vue.js
学会870上岸华师2 小时前
c语言学习16——内存函数
c语言·开发语言·学习