详解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 相关文章推荐
为Extjs加加速(javascript加速)
Aug 19 Javascript
js封装的textarea操作方法集合(兼容很好)
Nov 16 Javascript
Javascript跨域请求的4种解决方式
Mar 17 Javascript
javascript通过className来获取元素的简单示例代码
Jan 10 Javascript
js中的时间转换—毫秒转换成日期时间的示例代码
Jan 26 Javascript
仿淘宝TAB切换搜索框搜索切换的相关内容
Sep 21 Javascript
JavaScript中常用的六种互动方法示例
Mar 13 Javascript
js格式化时间的方法
Dec 18 Javascript
关于backbone url请求中参数带有中文存入数据库是乱码的快速解决办法
Jun 13 Javascript
JavaScript学习笔记之函数记忆
Sep 06 Javascript
解决vue的变量在settimeout内部效果失效的问题
Aug 30 Javascript
微信小程序使用前置摄像头拍照
Oct 22 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
深入apache host的配置详解
2013/06/09 PHP
php 魔术方法详解
2014/11/11 PHP
php和editplus正则表达式去除空白行
2015/04/17 PHP
PHP反射学习入门示例
2019/06/14 PHP
使弱类型的语言JavaScript变强势
2009/06/22 Javascript
关于scrollLeft,scrollTop的浏览器兼容性测试
2013/03/19 Javascript
基于jQuery实现图片的前进与后退功能
2013/04/24 Javascript
关于extjs4如何获取grid修改后的数据的问题
2013/08/07 Javascript
SublimeText自带格式化代码功能之reindent
2015/12/27 Javascript
Bootstrap每天必学之工具提示(Tooltip)插件
2016/04/26 Javascript
网页瀑布流布局jQuery实现代码
2016/10/21 Javascript
JS 实现随机验证码功能
2017/02/15 Javascript
详解用node-images 打造简易图片服务器
2017/05/08 Javascript
Angular4学习笔记之实现绑定和分包
2017/08/01 Javascript
详解http访问解析流程原理
2017/10/18 Javascript
分析javascript原型及原型链
2018/03/18 Javascript
angular 实现下拉列表组件的示例代码
2019/03/09 Javascript
[06:45]DOTA2卡尔工作室 英雄介绍幻影长矛手篇
2013/07/12 DOTA
python实现k均值算法示例(k均值聚类算法)
2014/03/16 Python
python类和函数中使用静态变量的方法
2015/05/09 Python
Jupyter安装nbextensions,启动提示没有nbextensions库
2020/04/23 Python
Python使用logging模块实现打印log到指定文件的方法
2018/09/05 Python
对pandas的行列名更改与数据选择详解
2018/11/12 Python
python单例模式的多种实现方法
2019/07/26 Python
torch 中各种图像格式转换的实现方法
2019/12/26 Python
Python基于requests库爬取网站信息
2020/03/02 Python
Python3.9.1中使用split()的处理方法(推荐)
2021/02/07 Python
大学本科毕业生求职简历的自我评价
2013/10/09 职场文书
物理专业大学生职业生涯规划书
2014/02/07 职场文书
应届生自荐信
2014/06/30 职场文书
群众路线班子对照检查材料
2014/09/25 职场文书
旷课检讨书500字
2014/10/14 职场文书
小学英语教学经验交流材料
2015/11/02 职场文书
ThinkPHP5和ThinkPHP6的区别
2021/03/31 PHP
python 破解加密zip文件的密码
2021/04/22 Python
MySQL 自定义变量的概念及特点
2021/05/13 MySQL