实例详解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 获得服务器控件值的方法小结
May 11 Javascript
JS判断元素为数字的奇异写法分享
Aug 01 Javascript
Extjs4中tree的拖拽功能(可以两棵树之间拖拽) 简单实例
Dec 08 Javascript
JavaScript 学习笔记之操作符
Jan 14 Javascript
JS实现黑客帝国文字下落效果
Sep 01 Javascript
浅析JavaScript中命名空间namespace模式
Jun 22 Javascript
基于BootStrap环境写jQuery tabs插件
Jul 12 Javascript
pc加载更多功能和移动端下拉刷新加载数据
Nov 07 Javascript
前端跨域的几种解决方式总结(推荐)
Aug 16 Javascript
Angular实现下载安装包的功能代码分享
Sep 05 Javascript
es6数组includes()用法实例分析
Apr 18 Javascript
Ant Design moment对象和字符串之间的相互转化教程
Oct 27 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获取网页标题和内容函数(不包含html标签)
2014/02/03 PHP
使用YUI+Ant 实现JS CSS压缩
2014/09/02 PHP
php cookie名使用点号(句号)会被转换
2014/10/23 PHP
javascript下阻止表单重复提交、防刷新、防后退
2007/08/17 Javascript
javascript椭圆旋转相册实现代码
2012/01/16 Javascript
如何在父窗口中得知window.open()出的子窗口关闭事件
2013/10/15 Javascript
使用jquery prev()方法找到同级的前一个元素
2014/07/11 Javascript
JavaScript中的单引号和双引号报错的解决方法
2014/09/01 Javascript
js Object2String方便查看js对象内容
2014/11/24 Javascript
js的flv视频播放器插件使用方法
2015/06/23 Javascript
jquery实现具有嵌套功能的选项卡
2016/02/12 Javascript
JavaScript程序中实现继承特性的方式总结
2016/06/24 Javascript
bootstrap滚动监控器使用方法解析
2017/01/13 Javascript
如何解决vue与传统jquery插件冲突
2017/03/20 Javascript
JS自定义函数实现时间戳转换成date的方法示例
2017/08/27 Javascript
浅谈微信小程序之官方UI框架we-ui使用教程
2018/08/20 Javascript
iview同时验证多个表单问题总结
2018/09/29 Javascript
JavaScript实现简单轮播图效果
2018/12/01 Javascript
AngularJS实现的鼠标拖动画矩形框示例【可兼容IE8】
2019/05/17 Javascript
elementUi vue el-radio 监听选中变化的实例代码
2019/06/28 Javascript
react实现移动端下拉菜单的示例代码
2020/01/16 Javascript
JavaScript实现拖拽和缩放效果
2020/08/24 Javascript
python实现挑选出来100以内的质数
2015/03/24 Python
pycharm执行python时,填写参数的方法
2018/10/29 Python
python中如何实现将数据分成训练集与测试集的方法
2019/09/13 Python
如何安装并在pycharm使用selenium的方法
2020/04/30 Python
基于css3的属性transition制作菜单导航效果
2015/09/01 HTML / CSS
芬兰攀岩、山地运动和户外活动用品购物网站:Bergfreunde
2016/10/06 全球购物
世界领先的高品质定制产品平台:Zazzle
2017/07/23 全球购物
Black Halo官方网站:购买连衣裙、礼服和连体裤
2018/06/13 全球购物
工作中个人的自我评价
2013/12/31 职场文书
开办加工厂创业计划书
2014/01/03 职场文书
单位委托书范本(3篇)
2014/09/18 职场文书
史上最牛辞职信
2015/05/13 职场文书
MySQL数据库之内置函数和自定义函数 function
2022/06/16 MySQL
Win11 KB5015814遇安装失败 影响开始菜单性能解决方法
2022/07/15 数码科技