Vue数据监听方法watch的使用


Posted in Javascript onMarch 28, 2018

watch本身很容易理解, watch负责将视图中的数据与某个函数关联起来

当Vue视图中的数据变化时, 关联的函数会被执行

Vue数据监听方法watch的使用

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>监听方法watch的使用</title>
  <script src="https://cdn.bootcss.com/vue/2.5.16/vue.js"></script>
</head>
<body>
  <div id="root"></div>
  <script>
    var vm = new Vue({
      el: "#root",
      data: { obj: {name: "zhaoolee", age: 12} , tel:6666666},
      template: `<div><div>姓名: {{obj.name}}</div>
        <div>电话: {{tel}}</div>
        <input type="text" v-model="obj.name">
        <input type="text" v-model="tel"></div>`,
      watch: {
        obj: {
         handler(){
           console.log("obj被改变");
         },
          // 页面加载之初先执行一次handle
         immediate: true,
          // 深度检查属性,即使对象内部的属性值改变, 也能检测到(比较消耗性能)
         deep: true
        },
        "obj.name": {
          handler(){
            console.log("=>obj.name被改变");
          }
        },
        tel:{
          handler(){
            console.log("tel被改变");
          }
        }
      }
    })
  </script>
</body>
</html>

对应一个对象,键是观察表达式,值是对应回调。值也可以是方法名,或者是对象,包含选项。在实例化时为每个键调用 $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解密入门之凭直觉解
Jun 25 Javascript
基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题
Dec 11 Javascript
用JavaScript计算在UTF-8下存储字符串占用字节数
Aug 08 Javascript
javascript实现textarea中tab键的缩排处理方法
Jun 26 Javascript
基于jquery实现全屏滚动效果
Nov 26 Javascript
如何通过非数字与字符的方式实现PHP WebShell详解
Jul 02 Javascript
AngularJS 中的数据源的循环输出
Oct 12 Javascript
详解JavaScript的BUG和错误
May 07 Javascript
KOA+egg.js集成kafka消息队列的示例
Nov 09 Javascript
微信小程序数据统计和错误统计的实现方法
Jun 26 Javascript
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
Sep 29 Javascript
原生js实现自定义滚动条组件
Jan 20 Javascript
Vue 自定义动态组件实例详解
Mar 28 #Javascript
详解VUE 对element-ui中的ElTableColumn扩展
Mar 28 #Javascript
微信小程序之分享页面如何返回首页的示例
Mar 28 #Javascript
js中el表达式的使用和非空判断方法
Mar 28 #Javascript
JS实现左边列表移到到右边列表功能
Mar 28 #Javascript
JS中用EL表达式获取上下文参数值的方法
Mar 28 #Javascript
jQuery实现文字超过1行、2行或规定的行数时自动加省略号的方法
Mar 28 #jQuery
You might like
php高级编程-函数-郑阿奇
2011/07/04 PHP
Laravel 4.2 中队列服务(queue)使用感受
2014/10/30 PHP
使用PHP生成PDF方法详解
2015/01/23 PHP
php等比例缩放图片及剪切图片代码分享
2016/02/13 PHP
php生成图片缩略图功能示例
2017/02/22 PHP
POST一个JSON格式的数据给Restful服务实例详解
2017/04/07 PHP
php下载远程大文件(获取远程文件大小)的实例
2017/06/17 PHP
理解JavaScript变量作用域更轻松
2009/10/25 Javascript
jquery插件珍藏(图片局部放大/信息提示框)
2013/01/08 Javascript
jQuery的each终止或跳过示例代码
2013/12/12 Javascript
jquery实现页面关键词高亮显示的方法
2015/03/12 Javascript
使用jspdf生成pdf报表
2015/07/03 Javascript
JS基于cookie实现来宾统计记录访客信息的方法
2015/08/04 Javascript
video.js使用改变ui过程
2017/03/05 Javascript
Django+Vue.js搭建前后端分离项目的示例
2017/08/07 Javascript
JavaScript 通过Ajax 动态加载CheckBox复选框
2017/08/31 Javascript
jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】
2018/05/26 jQuery
使用Layer组件弹出多个对话框(非嵌套)与关闭及刷新的例子
2019/09/25 Javascript
Vue3+elementui plus创建项目的方法
2020/12/01 Vue.js
[03:00]2014DOTA2国际邀请赛 Titan淘汰潸然泪下Ohaiyo专访
2014/07/15 DOTA
Python 2.x如何设置命令执行的超时时间实例
2017/10/19 Python
完美解决Python 2.7不能正常使用pip install的问题
2018/06/12 Python
window7下的python2.7版本和python3.5版本的opencv-python安装过程
2019/10/24 Python
python十进制转二进制的详解
2020/02/07 Python
CSS3中:nth-child和:nth-of-type的区别深入理解
2014/03/10 HTML / CSS
HTML5之SVG 2D入门4—笔画与填充
2013/01/30 HTML / CSS
马德里著名的运动鞋商店:NOIRFONCE
2019/04/12 全球购物
成功经营餐厅的创业计划书范文
2013/12/26 职场文书
机电专业大学生职业规划书范文
2014/02/25 职场文书
《鸟岛》教学反思
2014/04/26 职场文书
娱乐节目策划方案
2014/06/10 职场文书
2015年教研室工作总结范文
2015/05/23 职场文书
歌舞青春观后感
2015/06/10 职场文书
Python源码解析之List
2021/05/21 Python
vue点击弹窗自动触发点击事件的解决办法(模拟场景)
2021/05/25 Vue.js
vue使用refs获取嵌套组件中的值过程
2022/03/31 Vue.js