实例详解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 相关文章推荐
JS限制Textarea文本域字符个数的具体实现
Aug 02 Javascript
javascript跨域方法、原理以及出现问题解决方法(详解)
Aug 06 Javascript
js判断手机访问或者PC的几个例子(常用于手机跳转)
Dec 15 Javascript
JS正则替换掉小括号及内容的方法
Nov 29 Javascript
微信小程序 支付简单实例及注意事项
Jan 06 Javascript
Vue项目中quill-editor带样式编辑器的使用方法
Aug 08 Javascript
浅谈React深度编程之受控组件与非受控组件
Dec 26 Javascript
jQuery+koa2实现简单的Ajax请求的示例
Mar 06 jQuery
vue.js中npm安装教程图解
Apr 10 Javascript
深入浅析AngularJs模版与v-bind
Jul 06 Javascript
微信小程序自定义波浪组件使用方法详解
Sep 21 Javascript
使用layer模态框给新页面传值的方法
Sep 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实现遍历多维数组的方法
2015/11/25 PHP
PHP表单数据写入MySQL数据库的代码
2016/05/31 PHP
PHP函数积累总结
2019/03/19 PHP
善用事件代理,警惕闭包的性能陷阱。
2011/01/20 Javascript
通过jQuery源码学习javascript(一)
2012/12/27 Javascript
跟我学习javascript的严格模式
2015/11/16 Javascript
jQuery中ScrollTo用法示例
2016/09/04 Javascript
Asp.Net之JS生成分页条的方法
2016/11/23 Javascript
Jquery EasyUI Datagrid右键菜单实现方法
2016/12/30 Javascript
js实现tab切换效果
2017/02/16 Javascript
js实现canvas图片与img图片的相互转换的示例
2017/08/31 Javascript
Vue响应式原理深入解析及注意事项
2017/12/11 Javascript
JavaScript重复元素处理方法分析【统计个数、计算、去重复等】
2017/12/14 Javascript
如何用webpack4.0撸单页/多页脚手架 (jquery, react, vue, typescript)
2019/06/18 jQuery
Python二分法搜索算法实例分析
2015/05/11 Python
django1.8使用表单上传文件的实现方法
2016/11/04 Python
用Python分析3天破10亿的《我不是药神》到底神在哪?
2018/07/12 Python
python中的字符串内部换行方法
2018/07/19 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
2018/07/27 Python
python实现从文件中读取数据并绘制成 x y 轴图形的方法
2018/10/14 Python
pyqt实现.ui文件批量转换为对应.py文件脚本
2019/06/19 Python
Python使用tkinter模块实现推箱子游戏
2019/10/08 Python
python shutil文件操作工具使用实例分析
2019/12/25 Python
pytorch 改变tensor尺寸的实现
2020/01/03 Python
python实现人机猜拳小游戏
2020/02/03 Python
美国办公用品购物网站:Quill.com
2016/09/01 全球购物
美国球鞋寄卖网站:Stadium Goods
2018/05/09 全球购物
美国花园雕像和家居装饰网上商店:Design Toscano
2019/03/09 全球购物
学习党章思想汇报
2014/01/07 职场文书
小学数学课题方案
2014/06/15 职场文书
毕业生找工作自荐书
2014/06/30 职场文书
党委班子剖析材料
2014/08/21 职场文书
党的群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
煤矿隐患排查制度
2015/08/05 职场文书
导游词之湖北梁子湖
2019/11/07 职场文书
如何用RabbitMQ和Swoole实现一个异步任务系统
2021/05/29 PHP