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>
相关推荐
哆啦A梦15883 小时前
商城后台管理系统 03 规格参数配置
javascript·vue.js·elementui
小番茄夫斯基3 小时前
使用 pnpm + Workspaces 构建 Monorepo 的完整指南
前端·javascript·vue.js
摇滚侠3 小时前
Redis 零基础到进阶,zset、bitmap、HyperLogLog、GEO、stream、bitfiled,笔记20-27
数据库·redis·笔记
shuaijie05183 小时前
两个表格进行相互联动
前端·javascript·vue.js
timer_0173 小时前
CatchAdmin v5.0 beta
笔记
LO嘉嘉VE3 小时前
学习笔记三十:极大似然估计
笔记·学习·机器学习
QT 小鲜肉3 小时前
【Linux命令大全】001.文件管理(理论篇)
linux·数据库·chrome·笔记
by__csdn4 小时前
Vue3 生命周期全面解析:从创建到销毁的完整指南
开发语言·前端·javascript·vue.js·typescript·前端框架·ecmascript
醒了接着睡4 小时前
Vue3 插槽的本质
vue.js
进击的野人4 小时前
Vue生命周期详解:从创建到销毁的全过程
前端·vue.js·面试