详解Vue监听数据变化原理


Posted in Javascript onMarch 08, 2017

本人最近在学习Vue,从网上查询了很多关于Vue监听数据变化原理,稍微整理精简一下做下分享。

浅度监听

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>浅度监听</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="apple-mobile-web-app-status-bar-style" content="black">
  <script src="../js/vue1.0.js"></script>
  <script src="../js/vue-resource.js"></script>
  <script>
    window.onload = function(){
      var vm = new Vue({
        el:'#box',
        data:{
          a:111,
          b:2
        }
      });
      vm.$watch('a',function(){
        alert('发生变化了');
      });
      document.onclick = function(){
        vm.a = 1;
      }
    }
  </script>
</head>
<body>
<div id="box">
  {{a}}
  <hr>
  {{b}}
</div>
</body>
</html>

深度监听

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>深度监听</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="apple-mobile-web-app-status-bar-style" content="black">
  <script src="../js/vue1.0.js"></script>
  <script src="../js/vue-resource.js"></script>
  <script>
    window.onload = function(){
      var vm = new Vue({
        el:'#box',
        data:{
          json:{name:'abcdef',age:'16'},
          b:2
        }
      });
      vm.$watch('json',function(){
        alert('发生变化了');
      },{deep:true});
      document.onclick = function(){
        vm.json.name = "aaaaaa";
      }
    }
  </script>
</head>
<body>
<div id="box">
  {{json | json}}
  <hr>
  {{b}}
</div>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
从新浪弄下来的全屏广告代码 与使用说明
Mar 15 Javascript
S2SH整合JQuery+Ajax实现登录验证功能实现代码
Jan 30 Javascript
jquery限定文本框只能输入数字即整数和小数
Nov 29 Javascript
JavaScript中的ubound函数使用实例
Nov 04 Javascript
javascript简单实现类似QQ头像弹出效果的方法
Aug 03 Javascript
jquery调整表格行tr上下顺序实例讲解
Jan 09 Javascript
使用jQuery处理AJAX请求的基础学习教程
May 10 Javascript
bootstrap 设置checkbox部分选中效果
Apr 20 Javascript
Node学习记录之cluster模块
May 31 Javascript
快速解决angularJS中用post方法时后台拿不到值的问题
Aug 14 Javascript
vue.js中toast用法及使用toast弹框的实例代码
Aug 27 Javascript
微信小程序实现时间预约功能
Nov 27 Javascript
JS文件/图片从电脑里面拖拽到浏览器上传文件/图片
Mar 08 #Javascript
Vue 父子组件、组件间通信
Mar 08 #Javascript
jQuery的$.extend 浅拷贝与深拷贝
Mar 08 #Javascript
vue-resourse将json数据输出实例
Mar 08 #Javascript
微信小程序 下拉列表的实现实例代码
Mar 08 #Javascript
js实现五星评价功能
Mar 08 #Javascript
ionic2 tabs 图标自定义实例
Mar 08 #Javascript
You might like
php操作SVN版本服务器类代码
2011/11/27 PHP
PHP文件操作简单介绍及函数汇总
2020/12/11 PHP
出现“不能执行已释放的Script代码”错误的原因及解决办法
2007/08/29 Javascript
javascript 学习之旅 (3)
2009/02/05 Javascript
jquery animate 动画效果使用说明
2009/11/04 Javascript
jQuery 遍历- 关于closest() 的方法介绍以及与parents()的方法区别分析
2013/04/26 Javascript
javascript实现十六进制颜色值(HEX)和RGB格式相互转换
2014/06/20 Javascript
在JavaScript中访问字符串的子串
2015/07/07 Javascript
js 动态生成html 触发事件传参字符转义的实例
2017/02/14 Javascript
JS操作xml对象转换为Json对象示例
2017/03/25 Javascript
20行JS代码实现网页刮刮乐效果
2017/06/23 Javascript
浅谈JsonObject中的key-value数据解析排序问题
2017/12/06 Javascript
JS去除字符串最后的逗号实例分析【四种方法】
2019/06/20 Javascript
微信小程序webview 脚手架使用详解
2019/07/22 Javascript
JS实现动态倒计时功能(天数、时、分、秒)
2019/12/12 Javascript
vue引入静态js文件的方法
2020/06/20 Javascript
js属性对象的hasOwnProperty方法的使用
2021/02/05 Javascript
浅谈Python的文件类型
2016/05/30 Python
python字典DICT类型合并详解
2017/08/17 Python
Python实现k-means算法
2018/02/23 Python
Python3 使用cookiejar管理cookie的方法
2018/12/28 Python
Python创建字典的八种方式
2019/02/27 Python
python try 异常处理(史上最全)
2019/03/07 Python
什么是Python中的匿名函数
2020/06/02 Python
python能在浏览器能运行吗
2020/06/17 Python
浅析python 通⽤爬⾍和聚焦爬⾍
2020/09/28 Python
意大利体育用品网上商城:Nencini Sport
2016/08/18 全球购物
Anya Hindmarch官网:奢侈设计师手袋及配饰
2018/11/15 全球购物
医药大学生求职简历的自我评价
2013/10/17 职场文书
专升本个人自我评价
2013/12/22 职场文书
《红军不怕远征难》教学反思
2014/04/14 职场文书
《记金华的双龙洞》教学反思
2014/04/19 职场文书
优秀班主任先进事迹材料
2014/12/16 职场文书
2016领导干部廉洁自律心得体会
2016/01/13 职场文书
MySQL数据库中varchar类型的数字比较大小的方法
2021/11/17 MySQL
Go语言编译原理之变量捕获
2022/08/05 Golang