一文搞懂Vue中watch侦听器的用法

 更新时间:2023年11月02日 09:56:30   作者:森呼吸。  
在Vue.js中,您可以使用watch选项来创建侦听器,以侦听特定属性的变化,侦听器可以在属性发生变化时执行相关的逻辑,本文给大家详细讲讲Vue中watch侦听器的用法,需要的朋友可以参考下

watch 需要侦听特定的数据源,并在单独的回调函数中执行副作用

watch第一个参数监听源

watch第二个参数回调函数cb(newVal,oldVal)

watch第三个参数一个options配置项是一个对象{

immediate:true //是否立即调用一次

deep:true //是否开启深度监听

flush:“pre” // 更新时机

}

flush配置项

presyncpost
组件更新前执行(默认)强制效果始终同步触发组件更新后执行

1. 监听Ref 案例

import { ref, watch } from 'vue'

let message = ref({
    nav:{
        bar:{
            name:""
        }
    }
})

watch(message, (newVal, oldVal) => {
    console.log('新的值----', newVal);
    console.log('旧的值----', oldVal);
},{
    immediate:true,
    deep:true
})

监听多个ref 注意变成数组

import { ref, watch ,reactive} from 'vue'

let message = ref('')
let message2 = ref('')

watch([message,message2], (newVal, oldVal) => {
    console.log('新的值----', newVal);
    console.log('旧的值----', oldVal);
})

2. 监听Reactive

使用reactive监听深层对象开启和不开启deep 效果一样

import { ref, watch ,reactive} from 'vue'

let message = reactive({
    nav:{
        bar:{
            name:""
        }
    }
})

watch(message, (newVal, oldVal) => {
    console.log('新的值----', newVal);
    console.log('旧的值----', oldVal);
})

监听reactive 单一值

import { ref, watch ,reactive} from 'vue'

let message = reactive({
    name:"",
    name2:""
})

watch(()=>message.name, (newVal, oldVal) => {
    console.log('新的值----', newVal);
    console.log('旧的值----', oldVal);
}

以上就是一文搞懂Vue中watch侦听器的用法的详细内容,更多关于Vue watch侦听器的资料请关注脚本之家其它相关文章!

相关文章

  • 解决vue中数据更新视图不更新问题this.$set()方法

    解决vue中数据更新视图不更新问题this.$set()方法

    这篇文章主要介绍了解决vue中数据更新视图不更新问题this.$set()方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • Vue2源码解析之自定义指令

    Vue2源码解析之自定义指令

    自定义指令,其实就是在vue提供的钩子中写代码,这篇文章将从源码的角度,带大家深入了解一下Vue2种自定义指令的实现与使用,需要的可以参考一下
    2023-05-05
  • 结合Vue控制字符和字节的显示个数的示例

    结合Vue控制字符和字节的显示个数的示例

    这篇文章主要介绍了结合Vue控制字符和字节的显示个数的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • mpvue小程序循环动画开启暂停的实现方法

    mpvue小程序循环动画开启暂停的实现方法

    这篇文章主要介绍了mpvue小程序循环动画开启暂停的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • vue中echarts图表大小适应窗口大小且不需要刷新案例

    vue中echarts图表大小适应窗口大小且不需要刷新案例

    这篇文章主要介绍了vue中echarts图表大小适应窗口大小且不需要刷新案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • 详解vue组件化开发-vuex状态管理库

    详解vue组件化开发-vuex状态管理库

    本篇文章主要介绍了详解vue组件化开发-vuex状态管理库,具有一定的参考价值,有兴趣的可以了解一下。
    2017-04-04
  • vue3继承并扩展三方组件完成二次封装的示例详解

    vue3继承并扩展三方组件完成二次封装的示例详解

    这篇文章主要介绍了vue3继承并扩展三方组件完成二次封装,文章使用naiveui的Input组件进行举例,elementPlus或者其他组件库同理,并通过代码示例讲解的非常详细,需要的朋友可以参考下
    2024-03-03
  • Vue过滤器filters如何使用

    Vue过滤器filters如何使用

    Vue过滤器filters用于一些常见的文本格式化,通过过滤器可以进行处理成自己想要展示出来的格式,由“管道”符号指示,本文给大家介绍Vue过滤器filters使用方式,感兴趣的朋友一起看看吧
    2023-10-10
  • vue-自定义组件传值的实例讲解

    vue-自定义组件传值的实例讲解

    今天小编就为大家分享一篇vue-自定义组件传值的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • Vue分别运用class绑定和style绑定通过点击实现样式切换

    Vue分别运用class绑定和style绑定通过点击实现样式切换

    这篇文章主要为大家介绍了Vue分别运用class绑定和style绑定通过点击实现样式切换,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07

最新评论