实例详解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 相关文章推荐
Display SQL Server Version Information
Jun 21 Javascript
JavaScript脚本性能优化注意事项
Nov 18 Javascript
javascript 新浪背投广告实现代码
Jul 07 Javascript
Dom 结点创建 基础知识
Oct 01 Javascript
jquery得到font-size属性值实现代码
Sep 30 Javascript
javascript动态修改Li节点值的方法
Jan 20 Javascript
浅析jQuery操作select控件的取值和设值
Dec 07 Javascript
AngularJs篇:使用AngularJs打造一个简易权限系统的实现代码
Dec 26 Javascript
手把手搭建安装基于windows的Vue.js运行环境
Jun 12 Javascript
微信小程序实现指定显示行数多余文字去掉用省略号代替
Jul 25 Javascript
jQuery md5加密插件jQuery.md5.js用法示例
Aug 24 jQuery
了解重排与重绘
May 29 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
DOTA2 1月28日更新:监管系统降临刀塔世界
2021/01/28 DOTA
第九节 绑定 [9]
2006/10/09 PHP
mysql建立外键
2006/11/25 PHP
Php注入点构造代码
2008/06/14 PHP
PHP树-不需要递归的实现方法
2016/06/21 PHP
php实现构建排除当前元素的乘积数组方法
2018/10/06 PHP
javascript radio 联动效果
2009/03/04 Javascript
10个基于jQuery或JavaScript的WYSIWYG 编辑器整理
2010/05/06 Javascript
jQuery EasyUI API 中文文档 - Dialog对话框
2011/11/15 Javascript
js实现每日自动换一张图片的方法
2015/05/04 Javascript
WordPress中鼠标悬停显示和隐藏评论及引用按钮的实现
2016/01/12 Javascript
使用JQuery实现智能表单验证功能
2016/03/08 Javascript
JavaScript中关键字 in 的使用方法详解
2016/10/17 Javascript
js实现兼容PC端和移动端滑块拖动选择数字效果
2017/02/16 Javascript
JS操作input标签属性checkbox全选的实现代码
2017/03/02 Javascript
Node.js 使用命令行工具检查更新
2017/06/08 Javascript
Vue组件化通讯的实例代码
2017/06/23 Javascript
小程序实现左右来回滚动字幕效果
2018/12/28 Javascript
Mint UI实现A-Z字母排序的城市选择列表
2018/12/28 Javascript
JavaScript展开操作符(Spread operator)详解
2019/07/20 Javascript
vue 微信扫码登录(自定义样式)
2020/01/06 Javascript
python对指定字符串逆序的6种方法(小结)
2020/04/02 Python
python多线程实现同时执行两个while循环的操作
2020/05/02 Python
HTML5 progress和meter控件_动力节点Java学院整理
2017/07/06 HTML / CSS
canvas画布实现手写签名效果的示例代码
2019/04/23 HTML / CSS
波兰化妆品和护肤品购物网站:eKobieca
2019/08/30 全球购物
英国行业制服供应商:Alexandra
2019/09/14 全球购物
迪卡侬中国官网:Decathlon中国
2020/08/10 全球购物
面向中国市场的在线海淘美妆零售网站:Beauty House美丽屋
2021/03/02 全球购物
口腔工艺技术专业毕业生自荐信
2013/09/27 职场文书
婚庆公司的创业计划书
2014/01/22 职场文书
《匆匆》教学反思
2014/02/22 职场文书
空中乘务员岗位职责
2014/03/08 职场文书
英语教师个人工作总结
2015/02/09 职场文书
个人求职意向书
2015/05/11 职场文书
班级班风口号大全
2015/12/25 职场文书