实例详解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 相关文章推荐
jquery post方式传递多个参数值后台以数组的方式进行接收
Jan 11 Javascript
js 实现日期灵活格式化的小例子
Jul 14 Javascript
node.js中的fs.lstatSync方法使用说明
Dec 16 Javascript
JavaScript中Function详解
Feb 27 Javascript
深入浅析react native es6语法
Dec 09 Javascript
Vue中的Vux配置指南
Dec 08 Javascript
小试SVG之新手小白入门教程
Jan 08 Javascript
用VueJS写一个Chrome浏览器插件的实现方法
Feb 27 Javascript
js实现带有动画的返回顶部
Aug 09 Javascript
JavaScript常用进制转换及位运算实例解析
Oct 14 Javascript
vue实现顶部菜单栏
Nov 08 Javascript
React中使用Vditor自定义图片详解
Dec 25 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删除数组中特定元素的两种方法
2013/07/02 PHP
php 发送带附件邮件示例
2014/01/23 PHP
linux下安装php的memcached客户端
2014/08/03 PHP
Div自动滚动到末尾的代码
2008/10/26 Javascript
一个tab标签切换效果代码
2009/03/27 Javascript
TinyMCE 新增本地图片上传功能
2010/11/05 Javascript
js取滚动条的尺寸的函数代码
2011/11/30 Javascript
当jQuery1.7遇上focus方法的问题
2014/01/26 Javascript
Javascript基础教程之while语句
2015/01/18 Javascript
解决bootstrap中modal遇到Esc键无法关闭页面
2015/03/09 Javascript
原生js和jquery实现图片轮播淡入淡出效果
2015/04/23 Javascript
jQuery团购倒计时特效实现方法
2015/05/07 Javascript
js实现网页图片延时加载 提升网页打开速度
2016/01/26 Javascript
基于jquery实现ajax无刷新评论
2020/08/19 Javascript
基于JS代码实现导航条弹出式悬浮菜单
2016/06/17 Javascript
JS控制TreeView的结点选择
2016/11/11 Javascript
Python中实现字符串类型与字典类型相互转换的方法
2014/08/18 Python
python中print的不换行即时输出的快速解决方法
2016/07/20 Python
Python 数据结构之堆栈实例代码
2017/01/22 Python
python shutil文件操作工具使用实例分析
2019/12/25 Python
python爬虫基础知识点整理
2020/06/02 Python
阿拉伯世界最大的电子卖场:Souq埃及
2016/08/01 全球购物
Bjorn Borg官方网上商店:国际运动时尚品牌
2016/08/27 全球购物
在网上学习全世界最好的课程:Coursera
2017/11/07 全球购物
Expedia印度尼西亚站:预订酒店、廉价航班和度假套餐
2018/01/31 全球购物
Expedia丹麦:全球领先的旅游网站
2018/03/18 全球购物
New Balance比利时官方网站:购买鞋子和服装
2021/01/15 全球购物
计算机专业应届毕业生自荐信
2013/09/26 职场文书
水产养殖学应届生求职信
2013/09/29 职场文书
应届毕业生通用的自荐书范文
2014/02/07 职场文书
会走路的树教学反思
2014/02/20 职场文书
群众路线教育实践活动心得体会
2014/03/07 职场文书
销售员岗位职责
2014/06/09 职场文书
开天辟地观后感
2015/06/09 职场文书
小爸爸观后感
2015/06/15 职场文书
pt-archiver 主键自增
2022/04/26 MySQL