Vue.js watch监视属性知识点总结


Posted in Javascript onNovember 11, 2019

这个属性用来监视某个数据的变化,并触发相应的回调函数执行

1.基本用法

(1)添加watch属性,值为一个对象。对象的属性名就是要监视的数据,属性值为回调函数,每当这个属性名对应的值发生变化,就会触发该回调函数执行

(2)回调函数有2个参数:

newVal:数据发生改变后的值

oldVal:数据发生改变前的值

var vm = new Vue({
  el:'#app',
  data: {
    name: '郭靖'
  },
  watch: {
    name(newVal,oldVal){
      console.log('name的值发生了变化')
      console.log(newVal,oldVal)
    }
  }
})

vm.name = "郭大侠" // 执行这行代码,会触发对应的回调函数

执行结果:

name的值发生了变化
郭大侠 郭靖

2.监听对象内部属性的变化

前面的例子只是监听data中的第一层数据,如果要监听多层次的数据,例如a.b.c,则属性名需要用引号包裹起来

<body>
  <div id="app">
    <p>{{name}}</p>
    <button @click="test">修改wife.name</button>
    <button @click="test2">修改wife</button>
  </div>
</body>
<script>
  var vm = new Vue({
    el:'#app',
    data: {
      name: '郭靖',
      age: 20,
      wife: {
        name: '黄蓉',
        sex: '女'
      }
    },
    watch: {
      //监听wife中的name属性
      'wife.name'(newVal,oldVal){
        console.log('wife.name发生了改变')
      },
      //监听wife
      'wife'(newVal,oldVal){
        console.log('wife发生了改变')
      }
    },
    methods:{
      test(){
        this.wife.name = "'黄帮主'"
      },
      test2(){
        this.wife = {name:'我不是黄蓉',sex:'women'}
      }
    }
  })
</script>

运行结果表明,无论是他父级对象的值发生了改变,还是它本身的值发生了改变,都会使这个监视属性的回调函数执行。

Vue.js watch监视属性知识点总结

3.监听路由变化

提示:路由的路径信息保存在$route.path中

watch:{
 '$route.path':function(newval){
  console.log('change')
 }
}

4.深度监听

监视属性只能监听到当前对象值的变化,而对象内部的属性变化不会监听到,前面我们监听了wife和wife.name,修改了wife.name并不会触发监听wife的回调函数。

想要监听对象内部的属性值变化,需要进行相应的配置。

  • deep:深度监听,默认false
  • handler:回调函数
  • immediate:页面初始化时是否触发回调,默认false
var vm = new Vue({
  el:'#app',
  data: {
    name: '郭靖',
    age: 20,
    wife: {
      name: '黄蓉',
      sex: '女'
    }
  },
  watch: {
    wife:{
      deep:true,
      handler:function(newVal,oldVal){
        console.log('value is change')
      },
      immediate:true
    }
  }
})

vm.wife.name = '黄帮主' // 触发wife属性对应的回调

以上就是关于Vue.js watch监视属性的全部知识点,感谢大家的学习和对三水点靠木的支持。

Javascript 相关文章推荐
javascript+dom树型菜单类,希望朋友们一起进步
May 03 Javascript
javascript 防止刷新,后退,关闭
Aug 07 Javascript
JavaScript.The.Good.Parts阅读笔记(一)假值与===运算符
Nov 16 Javascript
javascripit实现密码强度检测代码分享
Dec 12 Javascript
javascript删除元素节点removeChild()用法实例
May 26 Javascript
Javascript函数中的arguments.callee用法实例分析
Sep 16 Javascript
使用AngularJS对表单提交内容进行验证的操作方法
Jul 12 Javascript
vue 之 css module的使用方法
Dec 04 Javascript
node.js基于socket.io快速实现一个实时通讯应用
Apr 23 Javascript
Postman内建变量常用方法实例解析
Jul 28 Javascript
解决vue props传Array/Object类型值,子组件报错的情况
Nov 07 Javascript
ES6学习教程之Promise用法详解
Nov 22 Javascript
javascript数组的定义及操作实例
Nov 10 #Javascript
聊聊Vue中provide/inject的应用详解
Nov 10 #Javascript
浅析vue中的provide / inject 有什么用处
Nov 10 #Javascript
Vue项目中使用jsonp抓取跨域数据的方法
Nov 10 #Javascript
webpack4 optimization使用总结
Nov 10 #Javascript
vue ssr服务端渲染(小白解惑)
Nov 10 #Javascript
node后端服务保活的实现
Nov 10 #Javascript
You might like
php 读取shell管道传输过来的内容
2010/03/01 PHP
PHP反射机制原理与用法详解
2017/02/15 PHP
php写入mysql中文乱码的实例解决方法
2019/09/17 PHP
jQuery 对Select的操作备忘记录
2011/07/04 Javascript
JS模板实现方法
2013/04/03 Javascript
JS 两日期相减,获得天数的小例子(兼容IE,FF)
2013/07/01 Javascript
jQuery实现返回顶部功能适合不支持js的浏览器
2014/08/19 Javascript
jquery mobile 移动web(5)
2015/12/20 Javascript
Bootstrap自定义文件上传下载样式
2016/05/26 Javascript
javascript事件冒泡简单示例
2016/06/20 Javascript
Javascript iframe交互并兼容各种浏览器的解决方法
2016/07/12 Javascript
利用jQuery对无序列表排序的简单方法
2016/10/16 Javascript
nodejs实现的连接MySQL数据库功能示例
2018/01/25 NodeJs
jQuery UI实现动画效果代码分享
2018/08/19 jQuery
vue-cli3自动消除console.log()的调试信息方式
2020/10/21 Javascript
[07:54]DOTA2-DPC中国联赛 正赛 iG vs VG 选手采访
2021/03/11 DOTA
Python标准模块--ContextManager上下文管理器的具体用法
2017/11/27 Python
利用python画出折线图
2018/07/26 Python
Python之循环结构
2019/01/15 Python
浅析python内置模块collections
2019/11/15 Python
python将logging模块封装成单独模块并实现动态切换Level方式
2020/05/12 Python
PyQt5 控件字体样式等设置的实现
2020/05/13 Python
python两种获取剪贴板内容的方法
2020/11/06 Python
如何使用 Flask 做一个评论系统
2020/11/27 Python
Python安装Bs4的多种方法
2020/11/28 Python
canvas绘制图片drawImage使用方法
2020/09/15 HTML / CSS
台湾屈臣氏网路商店:Watsons台湾
2020/12/29 全球购物
大学生四个方面的自我评价
2013/09/19 职场文书
心碎乌托邦的创业计划书范文
2013/12/26 职场文书
十岁生日父母答谢词
2014/01/18 职场文书
幼儿园教师师德师风演讲稿:爱我所爱 无悔青春
2014/09/10 职场文书
公司离职证明标准样本
2014/10/05 职场文书
努力工作保证书
2015/02/28 职场文书
党支部半年考察意见
2015/06/01 职场文书
结婚喜宴祝酒词
2015/08/10 职场文书
python如何读取和存储dict()与.json格式文件
2022/06/25 Python