详解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 相关文章推荐
JS BASE64编码 window.atob(), window.btoa()
Mar 09 Javascript
ASP.NET jQuery 实例16 通过控件CustomValidator验证RadioButtonList
Feb 03 Javascript
JavaScript 代码压缩工具小结
Feb 27 Javascript
js jquery数组介绍
Jul 15 Javascript
css与javascript跨浏览器兼容性总结
Sep 15 Javascript
jQuery实现高亮显示网页关键词的方法
Aug 07 Javascript
jQuery中fadein与fadeout方法用法示例
Sep 16 Javascript
浅谈React前后端同构防止重复渲染
Jan 05 Javascript
js中getBoundingClientRect的作用及兼容方案详解
Feb 01 Javascript
bootstrap Table实现合并相同行
Jul 19 Javascript
vue element upload实现图片本地预览
Aug 20 Javascript
扫微信小程序码实现网站登陆实现解析
Aug 20 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
推荐文章系统(一)
2006/10/09 PHP
PHP的ASP防火墙
2006/10/09 PHP
PHP开发的一些注意点总结
2010/10/12 PHP
php中时间轴开发(刚刚、5分钟前、昨天10:23等)
2011/10/03 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
2015/08/25 PHP
PHP文件上传问题汇总(文件大小检测、大文件上传处理)
2015/12/24 PHP
php bootstrap实现简单登录
2016/03/08 PHP
Yii2学习笔记之汉化yii设置表单的描述(属性标签attributeLabels)
2017/02/07 PHP
基于jQuery判断两个元素是否有重叠部分的代码
2012/07/25 Javascript
js 跳出页面的frameset框架示例介绍
2013/12/23 Javascript
JS中使用Array函数shift和pop创建可忽略参数的例子
2014/05/28 Javascript
使用DNode实现php和nodejs之间通信的简单实例
2015/07/06 NodeJs
Vue引入sass并配置全局变量的方法
2018/06/27 Javascript
webpack 静态资源集中输出的方法示例
2018/11/09 Javascript
layer实现弹出层自动调节位置
2019/09/05 Javascript
Vue为什么要谨慎使用$attrs与$listeners
2020/08/27 Javascript
vue-cli3项目配置eslint代码规范的完整步骤
2020/09/10 Javascript
Vue 的 v-model用法实例
2020/11/23 Vue.js
手把手教你python实现SVM算法
2017/12/27 Python
Python搭建FTP服务器的方法示例
2018/01/19 Python
用python写扫雷游戏实例代码分享
2018/05/27 Python
Linux CentOS Python开发环境搭建教程
2018/11/28 Python
解决python中无法自动补全代码的问题
2018/12/04 Python
用Cython加速Python到“起飞”(推荐)
2019/08/01 Python
Python 正则表达式爬虫使用案例解析
2019/09/23 Python
给 TensorFlow 变量进行赋值的方式
2020/02/10 Python
欧洲最大的笔和书写专家:The Pen Shop
2017/03/19 全球购物
伦敦剧院门票:London Theatre Direct
2018/11/21 全球购物
Intersport西班牙:在线体育商店
2019/11/06 全球购物
市场营销管理制度
2014/01/29 职场文书
访谈节目策划方案
2014/05/15 职场文书
就业协议书怎么填
2014/09/15 职场文书
离婚协议书该怎么写
2014/10/04 职场文书
申报优秀教师材料
2014/12/16 职场文书
2016继续教育研修日志
2015/11/13 职场文书
Go中的条件语句Switch示例详解
2021/08/23 Golang