实例详解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 相关文章推荐
this[] 指的是什么内容 讨论
Mar 24 Javascript
javascript基本语法分析说明
Jun 15 Javascript
jQuery 学习 几种常用方法
Jun 11 Javascript
js中的string.format函数代码
Aug 11 Javascript
js和jquery中循环的退出和继续学习记录
Sep 06 Javascript
jQuery设置和移除文本框默认值的方法
Mar 09 Javascript
javascript获取select值的方法分析
Jul 02 Javascript
JQuery日历插件My97DatePicker日期范围限制
Jan 20 Javascript
浅谈Javascript常用正则表达式应用
Mar 08 Javascript
vue获取data数据改变前后的值方法
Nov 07 Javascript
区分vue-router的hash和history模式
Oct 03 Javascript
Vue图片裁剪组件实例代码
Jul 02 Vue.js
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 缓存实现代码及详细注释
2010/05/16 PHP
php set_magic_quotes_runtime() 函数过时解决方法
2010/07/08 PHP
PHP获取网址的顶级域名函数代码
2012/09/24 PHP
php教程 插件机制在PHP中实现方案
2012/11/02 PHP
PHP内核探索:变量概述
2014/01/30 PHP
PHP获取对象属性的三种方法实例分析
2019/01/03 PHP
Javascript下的keyCode键码值表
2007/04/10 Javascript
JavaScript去掉数组中的重复元素
2011/01/13 Javascript
简单介绍JavaScript数据类型之隐式类型转换
2015/12/28 Javascript
Web Uploader文件上传插件使用详解
2016/05/10 Javascript
使用JS实现图片展示瀑布流效果的实例代码
2016/09/12 Javascript
getElementById().innerHTML与getElementById().value的区别
2016/10/27 Javascript
jQuery 插件实现随机自由弹跳气泡样式
2017/01/12 Javascript
利用vscode编写vue的简单配置详解
2017/06/17 Javascript
Vue组件选项props实例详解
2017/08/18 Javascript
深入研究React中setState源码
2017/11/17 Javascript
vue.js的简单自动求和计算实例
2019/11/08 Javascript
jquery制作的移动端购物车效果完整示例
2020/02/24 jQuery
nuxt+axios实现打包后动态修改请求地址的方法
2020/04/22 Javascript
ES6扩展运算符和rest运算符用法实例分析
2020/05/23 Javascript
Python 3.x读写csv文件中数字的方法示例
2017/08/29 Python
python构建深度神经网络(DNN)
2018/03/10 Python
django表单实现下拉框的示例讲解
2018/05/29 Python
Python字符串、整数、和浮点型数相互转换实例
2018/08/04 Python
详解python的四种内置数据结构
2019/03/19 Python
基于Python实现剪切板实时监控方法解析
2019/09/11 Python
Python3 虚拟开发环境搭建过程(图文详解)
2020/01/06 Python
Python join()函数原理及使用方法
2020/11/14 Python
意大利在线购买隐形眼镜网站:VisionDirect.it
2019/03/18 全球购物
解决方案设计综合面试题
2015/08/31 面试题
大学生毕业求职的自我评价
2013/09/29 职场文书
钱塘江大潮导游词
2015/02/03 职场文书
社区青年志愿者活动总结
2015/05/06 职场文书
2016高三毕业赠言寄语
2015/12/04 职场文书
七年级写作指导之游记作文
2019/10/07 职场文书
html5调用摄像头截图功能
2022/01/18 Javascript