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>
相关推荐
苏小画12 小时前
Vue 组件库从创建到发布全流程
前端·javascript·vue.js
月小满12 小时前
DataV轮播时其他组件的内容也一起滚动 修复bug的方法
前端·vue.js·bug·大屏端
wdfk_prog13 小时前
[Linux]学习笔记系列 -- [kernel]sysctl
linux·笔记·学习
专注于大数据技术栈13 小时前
java学习--==和equals
java·python·学习
智商低情商凑1 天前
Go学习之 - Goroutines和channels
开发语言·学习·golang
椒盐螺丝钉1 天前
Vue Router应用:组件跳转
前端·javascript·vue.js
敲敲了个代码1 天前
CSS 像素≠物理像素:0.5px 效果的核心密码是什么?
前端·javascript·css·学习·面试
moringlightyn1 天前
Linux---进程状态
linux·运维·服务器·笔记·操作系统·c·进程状态
go_bai1 天前
Linux-线程2
linux·c++·经验分享·笔记·学习方法
芳草萋萋鹦鹉洲哦1 天前
【vue】调用同页面其他组件方法几种新思路
前端·javascript·vue.js