详解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 相关文章推荐
理解Javascript_10_对象模型
Oct 16 Javascript
javascript学习笔记(二) js一些基本概念
Jun 18 Javascript
jquery ajax传递中文参数乱码问题及解决方法说明
Feb 07 Javascript
jQuery实现响应浏览器缩放大小并改变背景颜色
Oct 31 Javascript
js+html5实现canvas绘制圆形图案的方法
Jun 05 Javascript
vuejs实现标签选项卡动态更改css样式的方法
May 31 Javascript
微信小程序实现文字跑马灯
May 26 Javascript
使用Layui搭建后台管理界面的操作方法
Sep 20 Javascript
vue使用高德地图点击下钻上浮效果的实现思路
Oct 12 Javascript
JavaScript实现随机点名器
Mar 25 Javascript
vue-cli3 引入 font-awesome的操作
Aug 11 Javascript
详解Vue项目的打包方式(生成dist文件)
Jan 18 Vue.js
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
获取URL文件名后缀
2013/10/24 PHP
PHP基于CURL进行POST数据上传实例
2014/11/10 PHP
php删除左端与右端空格的方法
2014/11/29 PHP
Yii获取当前url和域名的方法
2015/06/08 PHP
PHP扩展开发教程(总结)
2015/11/04 PHP
PHP7 mongoDB扩展使用的方法分享
2019/05/02 PHP
百度移动版的url编码解码示例
2014/04/29 Javascript
javascript字符串函数汇总
2015/12/06 Javascript
JavaScript递归操作实例浅析
2016/10/31 Javascript
js生成随机颜色方法代码分享(三种)
2016/12/29 Javascript
Jquery把获取到的input值转换成json
2017/05/15 jQuery
关于使用js算总价的问题
2017/06/23 Javascript
解决JS内存泄露之js对象和dom对象互相引用问题
2017/06/25 Javascript
JS二分查找算法详解
2017/11/01 Javascript
vue登录路由验证的实现
2017/12/13 Javascript
新版vue-cli模板下本地开发环境使用node服务器跨域的方法
2018/04/03 Javascript
nuxt中使用路由守卫的方法步骤
2019/01/27 Javascript
mocha的时序规则讲解
2019/02/16 Javascript
js实现图片3D轮播效果
2019/09/21 Javascript
vue使用@scroll监听滚动事件时,@scroll无效问题的解决方法详解
2019/10/15 Javascript
JS轮播图的实现方法
2020/08/24 Javascript
巧用Python装饰器 免去调用父类构造函数的麻烦
2012/05/18 Python
Python标准库与第三方库详解
2014/07/22 Python
利用Python如何生成随机密码
2016/04/20 Python
python 专题九 Mysql数据库编程基础知识
2017/03/16 Python
python实现图片文件批量重命名
2020/03/23 Python
PyCharm+Pipenv虚拟环境开发和依赖管理的教程详解
2020/04/16 Python
pytorch 计算ConvTranspose1d输出特征大小方式
2020/06/23 Python
python中使用np.delete()的实例方法
2021/02/01 Python
皇马官方商城:Real Madrid Store
2016/09/02 全球购物
海滩咖啡馆:Beach Cafe
2018/02/02 全球购物
十八届三中全会个人学习材料
2014/02/13 职场文书
2014年社区妇联工作总结
2014/12/02 职场文书
学校实习推荐信
2015/03/27 职场文书
《丑小鸭》教学反思
2016/02/19 职场文书
浅谈Python从全局与局部变量到装饰器的相关知识
2021/06/21 Python