详解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学习笔记(五)原型和原型链详解
Oct 08 Javascript
JavaScript极简入门教程(二):对象和函数
Oct 25 Javascript
对比分析AngularJS中的$http.post与jQuery.post的区别
Feb 27 Javascript
完美解决手机浏览器顶部下拉出现网页源或刷新的问题
Nov 30 Javascript
Vue底层实现原理总结
Feb 17 Javascript
webpack4实现不同的导出类型
Apr 09 Javascript
详解Vue demo实现商品列表的展示
May 07 Javascript
element form 校验数组每一项实例代码
Oct 10 Javascript
详解vue页面首次加载缓慢原因及解决方案
Nov 06 Javascript
JS实现打字游戏
Dec 17 Javascript
jQuery实现的移动端图片缩放功能组件示例
May 01 jQuery
vue-router重写push方法,解决相同路径跳转报错问题
Aug 07 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判断手机访问还是电脑访问示例分享
2014/01/20 PHP
destoon实现首页显示供应、企业、资讯条数的方法
2014/07/15 PHP
Django 标签筛选的实现代码(一对多、多对多)
2018/09/05 PHP
用jQuery与JSONP轻松解决跨域访问的问题
2014/02/04 Javascript
jQuery实现鼠标可拖动调整表格列宽度
2014/05/26 Javascript
javascript实现详细时间提醒信息效果的方法
2015/03/11 Javascript
js限制文本框的输入内容代码分享(3类)
2015/08/20 Javascript
Javascript函数式编程简单介绍
2015/10/11 Javascript
js中获取 table节点各tr及td的内容简单实例
2016/10/14 Javascript
分享一个精简的vue.js 图片lazyload插件实例
2017/03/13 Javascript
JS实现的计数排序与基数排序算法示例
2017/12/04 Javascript
react在安卓中输入框被手机键盘遮挡问题的解决方法
2018/09/03 Javascript
Vue.js 使用v-cloak后仍显示变量的解决方法
2018/11/19 Javascript
Vue自定义render统一项目组弹框功能
2020/06/07 Javascript
一篇不错的Python入门教程
2007/02/08 Python
python基础教程之基本数据类型和变量声明介绍
2014/08/29 Python
Python函数式编程指南(三):迭代器详解
2015/06/24 Python
pyenv命令管理多个Python版本
2017/03/26 Python
Python标准库shutil用法实例详解
2018/08/13 Python
在Python中给Nan值更改为0的方法
2018/10/30 Python
浅析python参数的知识点
2018/12/10 Python
python实现AES和RSA加解密的方法
2019/03/28 Python
Python之变量类型和if判断方式
2020/05/05 Python
幼师自我鉴定范文
2013/10/01 职场文书
经理秘书找工作求职信
2013/12/19 职场文书
出纳试用期自我鉴定
2014/04/07 职场文书
终止合同协议书
2014/04/17 职场文书
领导干部作风建设剖析材料
2014/10/11 职场文书
2014年安全生产工作总结
2014/11/13 职场文书
单位租房协议范本
2014/12/03 职场文书
毕业实习感受与体会
2015/05/26 职场文书
烈士陵园扫墓感想
2015/08/07 职场文书
小学思品教学反思
2016/02/20 职场文书
《好妈妈胜过好老师》:每个孩子的优秀都是有源头的
2020/01/03 职场文书
SQLServer2019 数据库的基本使用之图形化界面操作的实现
2021/04/08 SQL Server
一篇文章弄清楚Ajax请求的五个步骤
2022/03/17 Javascript