详解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中各种编码解码函数的区别和注意事项
Aug 19 Javascript
jquery中focus()函数实现当对象获得焦点后自动把光标移到内容最后
Sep 29 Javascript
jQuery表格插件ParamQuery简单使用方法示例
Dec 05 Javascript
浅谈javascript中replace()方法
Nov 10 Javascript
浅谈javascript中的三种弹窗
Oct 21 Javascript
jQuery实现ToolTip元素定位显示功能示例
Nov 23 Javascript
es7学习教程之fetch解决异步嵌套问题的方法示例
Jul 21 Javascript
对vue.js中this.$emit的深入理解
Feb 23 Javascript
Vue.js实现可配置的登录表单代码详解
Mar 29 Javascript
JavaScript设计模式之责任链模式实例分析
Jan 16 Javascript
react实现antd线上主题动态切换功能
Aug 12 Javascript
jQuery实现高度灵活的表单验证功能示例【无UI】
Apr 30 jQuery
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
《心理测量者3》剧场版动画预告
2020/03/02 日漫
递归列出所有文件和目录
2006/10/09 PHP
PHP下几种删除目录的方法总结
2007/08/19 PHP
解析linux下安装memcacheq(mcq)全过程笔记
2013/06/27 PHP
php smarty truncate UTF8乱码问题解决办法
2014/06/13 PHP
PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
2016/04/11 PHP
Redis在Laravel项目中的应用实例详解
2017/08/11 PHP
PHP使用DOM对XML解析处理操作示例
2019/07/04 PHP
用javascript实现画板的代码
2007/09/05 Javascript
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(上:事件篇)
2010/03/24 Javascript
GridView中获取被点击行中的DropDownList和TextBox中的值
2013/07/18 Javascript
JavaScript解析URL参数示例代码
2013/08/12 Javascript
浅谈JS原型对象和原型链
2016/03/02 Javascript
BOM系列第二篇之定时器requestAnimationFrame
2016/08/17 Javascript
jQuery实现页面点击后退弹出提示框的方法
2016/08/24 Javascript
jQuery easyui刷新当前tabs的方法
2016/09/23 Javascript
Angular2从搭建环境到开发步骤详解
2016/10/17 Javascript
Typescript3.9 常用新特性一览(推荐)
2020/05/14 Javascript
Python中将字典转换为列表的方法
2016/09/21 Python
解决Python字典写入文件出行首行有空格的问题
2017/09/27 Python
Python网络编程之TCP套接字简单用法示例
2018/04/09 Python
Python pip 安装与使用(安装、更新、删除)
2019/10/06 Python
pytorch 准备、训练和测试自己的图片数据的方法
2020/01/10 Python
python实现FTP循环上传文件
2020/03/20 Python
Windows下PyCharm配置Anaconda环境(超详细教程)
2020/07/31 Python
教你一分钟在win10终端成功安装Pytorch的方法步骤
2021/01/28 Python
会务接待方案
2014/02/27 职场文书
个人委托书
2014/07/31 职场文书
小学生作文评语集锦
2014/12/25 职场文书
婚礼新人答谢词
2015/01/04 职场文书
2015年暑假工作总结
2015/07/13 职场文书
旅游安全责任协议书
2016/03/22 职场文书
用Python将GIF动图分解成多张静态图片
2021/06/11 Python
利用 JavaScript 构建命令行应用
2021/11/17 Javascript
【海涛dota解说】海涛小满开黑4v5被破两路翻盘潮汐第一视角解说
2022/04/01 DOTA
python前后端自定义分页器
2022/04/13 Python