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>
相关推荐
liugang_lawyer几秒前
防范新型金融诈骗
笔记·百度·微信·金融·微信公众平台·新浪微博
遇到困难睡大觉哈哈3 分钟前
Harmony os——ArkTS 语言笔记(七):注解(Annotation)实战理解
java·笔记·ubuntu·harmonyos·鸿蒙
Francek Chen5 分钟前
Francek Chen 的730天创作纪念日
大数据·人工智能·学习·程序人生·创作纪念日
含若飞5 分钟前
列表弹窗实现方案整理
前端·javascript·vue.js
Lynnxiaowen5 分钟前
今天我们开始学习Docker概述与安装
linux·学习·docker·容器·云计算
shaohaoyongchuang10 分钟前
vue_05axios
前端·javascript·vue.js
竹子_2315 分钟前
pyenv和.venv详解
经验分享·笔记·python
●VON26 分钟前
Flutter for OpenHarmony前置知识《Flutter 状态管理入门实战:使用 Provider 构建计数器应用》
前端·学习·flutter·华为·openharmony
代码or搬砖29 分钟前
SpringBoot+VUE+阿里云OSS实现简单的视频上传和展示
vue.js·spring boot·阿里云
艾小码30 分钟前
Vue开发三年,我才发现依赖注入的TypeScript正确打开方式
前端·javascript·vue.js