实例详解vue.js浅度监听和深度监听及watch用法


Posted in Javascript onAugust 16, 2018

第一个浅度监听:

<!DOCTYPE html>
<html>
 <head>
 <meta charset="UTF-8">
 <title></title>
 <script type="text/javascript" src="js/vue.js"></script>
 </head>
 <body>
 <div id="app">
  <p>{{a}}</p>
  <p>{{b}}</p>
 </div>
 <script>
  
 var vm=new Vue({
  el:"#app",
  data:{
   a:10,
   b:15
  }
 });
 vm.$watch("a",function(){
  alert('a变化了');
  this.b=100;
 });
 document.onclick=function(){
  vm.a=2
 }
 </script>
 </body>
</html>

第二个深度监听

<!DOCTYPE html>
<html>
 <head>
 <meta charset="UTF-8">
 <title></title>
 <script type="text/javascript" src="js/vue.js"></script>
 </head>
 <body>
 <div id="app">
  <p>{{a|json}}</p>
  <p>{{b}}</p>
 </div>
 <script>
  var vm = new Vue({
  el: "#app",
  data: {
   a: { id: "1", title: "width" },
   b: 15
  }
  });
  vm.$watch("a", function() {
  alert('a变化了');
  this.b = 100;
  }, { deep: true });
  document.onclick = function() {
  vm.a.id = "2";
  }
 </script>
 </body>
</html>

ps:下面看下vue中watch用法

对应一个对象,键是观察表达式,值是对应回调。值也可以是方法名,或者是对象,包含选项。在实例化时为每个键调用 $watch() ;

//使用官方vue-cli脚手架书写
<template>
//观察数据为字符串或数组

 <input v-model="example0"/>

 <input v-model="example1"/>

/当单观察数据examples2为对象时,如果键值发生变化,为了监听到数据变化,需要添加deep:true参数

 <input v-model="example2.inner0"/>
</template>
<script>

 export default {



data(){




return {





example0:"",





example1:"",





example2:{






inner0:1,






innner1:2





}




}



},



watch:{




example0(curVal,oldVal){





console.log(curVal,oldVal);




},




example1:'a',//值可以为methods的方法名




example2:{




 //注意:当观察的数据为对象或数组时,curVal和oldVal是相等的,因为这两个形参指向的是同一个数据对象





handler(curVal,oldVal){






conosle.log(curVal,oldVal)





},





deep:true




}



},



methods:{




a(curVal,oldVal){





conosle.log(curVal,oldVal)




}



}
  }
</script>

Javascript 相关文章推荐
node.js中使用node-schedule实现定时任务实例
Jun 03 Javascript
教你如何自定义百度分享插件以及bshare分享插件的分享按钮
Jun 20 Javascript
jQuery定义插件的方法
Dec 18 Javascript
深入浅析AngularJS和DataModel
Feb 16 Javascript
JS组件系列之Bootstrap table表格组件神器【二、父子表和行列调序】
May 10 Javascript
动态加载js、css的简单实现代码
May 26 Javascript
Bootstrap学习笔记 轮播(Carousel)插件
Mar 21 Javascript
jQuery实现在HTML文档加载完毕后自动执行某个事件的方法
May 08 jQuery
js原生日历的实例(推荐)
Oct 31 Javascript
layui实现数据表格table分页功能(ajax异步)
Jul 27 Javascript
javascript合并两个数组最简单的实现方法
Sep 14 Javascript
vue+layui实现select动态加载后台数据的例子
Sep 20 Javascript
vue watch普通监听和深度监听实例详解(数组和对象)
Aug 16 #Javascript
vue watch深度监听对象实现数据联动效果
Aug 16 #Javascript
JS实现的RC4加密算法示例
Aug 16 #Javascript
vue2.0父子组件间传递数据的方法
Aug 16 #Javascript
Vue2.0中三种常用传值方式(父传子、子传父、非父子组件传值)
Aug 16 #Javascript
bootstrap实现点击删除按钮弹出确认框的实例代码
Aug 16 #Javascript
浅谈Vue.js路由管理器 Vue Router
Aug 16 #Javascript
You might like
PHP 设计模式之观察者模式介绍
2012/02/22 PHP
简单介绍win7下搭建apache+php+mysql开发环境
2015/08/06 PHP
[原创]php实现子字符串位置相互对调互换的方法
2016/06/02 PHP
js实现文章文字大小字号功能完整实例
2014/11/01 Javascript
轻松创建nodejs服务器(5):事件处理程序
2014/12/18 NodeJs
JavaScript中使用sencha gridpanel 编辑单元格、改变单元格颜色
2015/11/26 Javascript
原生JavaScript制作微博发布面板效果
2016/03/11 Javascript
微信小程序 加载 app-service.js 错误解决方法
2016/10/12 Javascript
Web开发中客户端的跳转与服务器端的跳转的区别
2017/03/05 Javascript
Bootstrap输入框组件使用详解
2017/06/09 Javascript
vue实例中data使用return包裹的方法
2018/08/27 Javascript
vuex + axios 做登录验证 并且保存登录状态的实例
2018/09/16 Javascript
vue element 中的table动态渲染实现(动态表头)
2019/11/21 Javascript
[13:18]《一刀刀一天》之DOTA全时刻21:详解TI新赛制 A队再露獠牙
2014/06/24 DOTA
[59:36]2018DOTA2亚洲邀请赛 4.3 突围赛 Secret vs VG 第二场
2018/04/04 DOTA
[46:57]EG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python中类变量与成员变量的使用注意点总结
2017/04/29 Python
解析Python的缩进规则的使用
2019/01/16 Python
Python 利用切片从列表中取出一部分使用的方法
2019/02/01 Python
python+mysql实现个人论文管理系统
2019/10/25 Python
Python numpy数组转置与轴变换
2019/11/15 Python
详解python中groupby函数通俗易懂
2020/05/14 Python
英国著名音像制品和图书游戏购物网站:Zavvi
2016/08/04 全球购物
Dockers美国官方网站:卡其裤、男士服装、鞋及配件
2016/11/22 全球购物
巴西本土电商平台:Americanas
2020/06/21 全球购物
大学生物业管理求职信
2013/10/24 职场文书
秘书岗位职责
2013/11/18 职场文书
理货员的岗位职责
2013/11/23 职场文书
读书活动总结范文
2014/04/26 职场文书
保洁员岗位职责
2015/02/04 职场文书
旷工检讨书大全
2015/08/15 职场文书
护士爱岗敬业心得体会
2016/01/25 职场文书
JavaScript实现显示和隐藏图片
2021/04/29 Javascript
Python实现拼音转换
2021/06/07 Python
SQL实现LeetCode(196.删除重复邮箱)
2021/08/07 MySQL
Python 如何利用ffmpeg 处理视频素材
2021/11/27 Python