【12】vue.js — 监听数据变化
2017-09-07 17:07
639 查看
监听普通数据变化
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript" src="js/vue.js" ></script> </head> <body> <div id="box"> {{a}} <br /> {{b}} </div> </body> <script> window.onload=function(){ var vm = new Vue({ el: '#box', data: { a: 111, b: 2 } }); vm.$watch('a',function(){ alert("发生变化了"); this.b = this.a + 100; }); document.onclick = function(){ vm.a = 1; } } </script> </html>
上述页面初始化时,显示a为101, b为2,当页面点击之后会弹出“发生变化了”的弹窗,然后a的值变为1,b的值变为101。下面我们来看看
监听json数据变化
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript" src="js/vue.js" ></script> </head> <body> <div id="box"> {{json | json}}<!-- 处理显示json数据 --> <br /> {{b}} </div> </body> <script> window.onload=function(){ var vm = new Vue({ el: '#box', data: { json:{name:'strive',age:16}, b: 2 } }); vm.$watch('json',function(){ alert("发生变化了"); this.b = this.json.age + 100; }); document.onclick = function(){ vm.json.name = 'youxin'; } } </script> </html>
上述代码当我们点击页面时发现json数据内容会发生改变,但里面弹窗不会弹出。
我们可以为$watch方法加上如下参数
vm.$watch('json',function(){ alert("发生变化了"); this.b = this.json.age + 100; },{ deep:true });
相关文章推荐
- vue2.0+基础知识连载(12)--- 监听数据变化
- Vue监听数据对象变化源码
- Vue-- 监听路由变化,数据无法更新?
- 详解Vue监听数据变化原理
- vue.js 1.x与2.0中js实时监听input值的变化
- Vue监听数据变化
- Vue之监听数据变化
- 基于vue-cli的vue项目之vuex的使用5------watch监听vuex内部数据变化
- Vue.js学习(二):computed响应数据变化与其他几种方法的比较
- vue.js监听滚动条加载更多数据
- vue中的watch监听数据变化及watch中各属性的详解
- vue教程2-08 自定义键盘信息、监听数据变化vm.$watch
- 用Vue.js实现监听属性的变化
- vue.js 过滤器、ajax数据、事件监听实例
- vue.js 中如何监听watch:{}对象中的某个属性的变化,做相应的操作
- 基于vue-cli的vue项目之vuex的使用5------watch监听vuex内部数据变化
- Vue-- 监听路由变化,数据无法更新?
- 用Vue.js实现监听属性的变化
- vue.js使用watch监听路由变化的方法
- vue动态数据绑定1--如何监听一个对象的变化