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 相关文章推荐
javascript动态添加表格数据行(ASP后台数据库保存例子)
May 08 Javascript
jquery 新建的元素事件绑定问题解决方案
Jun 12 Javascript
使用AngularJS处理单选框和复选框的简单方法
Jun 19 Javascript
javascript实现下拉提示选择框
Dec 29 Javascript
bootstrap实现弹窗和拖动效果
Jan 03 Javascript
jQuery中通过ajax的get()函数读取页面的方法
Feb 29 Javascript
Javascript数组中push方法用法分析
Oct 31 Javascript
Javascript中关于Array.filter()的妙用详解
Dec 04 Javascript
基于vue.js的分页插件详解
Nov 27 Javascript
vue 2.x 中axios 封装的get 和post方法
Feb 28 Javascript
Angular学习教程之RouterLink花式跳转
May 03 Javascript
vue项目接口管理,所有接口都在apis文件夹中统一管理操作
Aug 13 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中的UNICODE 编码与解码
2013/06/29 PHP
PHP处理大量表单字段的便捷方法
2015/02/07 PHP
Javascript 中的类和闭包
2010/01/08 Javascript
js数组的操作详解
2013/03/27 Javascript
jQuery学习笔记(3)--用jquery(插件)实现多选项卡功能
2013/04/08 Javascript
JavaScript创建对象的写法
2013/08/29 Javascript
jquery select 设置默认选中的示例代码
2014/02/07 Javascript
javascript实现数字+字母验证码的简单实例
2014/02/10 Javascript
jQuery中:file选择器用法实例
2015/01/04 Javascript
JavaScript常用的返回,自动跳转,刷新,关闭语句汇总
2015/01/13 Javascript
JavaScript多线程详解
2015/08/12 Javascript
js简单实现调整网页字体大小的方法
2016/07/23 Javascript
jQuery制作网页版选项卡
2016/07/28 Javascript
vue-router路由简单案例介绍
2017/02/21 Javascript
js轮播图透明度切换(带上下页和底部圆点切换)
2017/04/27 Javascript
Angular使用操作事件指令ng-click传多个参数示例
2018/03/27 Javascript
JS中注入eval, Function等系统函数截获动态代码
2019/04/03 Javascript
Vue动态组件和异步组件原理详解
2019/05/06 Javascript
Node.js系列之连接DB的方法(3)
2019/08/30 Javascript
JS实现关闭小广告特效
2021/01/29 Javascript
JS数组方法push()、pop()用法实例分析
2020/01/18 Javascript
原生JavaScript实现轮播图
2021/01/10 Javascript
Python时间模块datetime、time、calendar的使用方法
2016/01/13 Python
python实现维吉尼亚算法
2019/03/20 Python
Win10 安装PyCharm2019.1.1(图文教程)
2019/09/29 Python
python超时重新请求解决方案
2019/10/21 Python
基于python判断目录或者文件代码实例
2019/11/29 Python
解析python 中/ 和 % 和 //(地板除)
2020/06/28 Python
HTML5+WebSocket实现多文件同时上传的实例
2016/12/29 HTML / CSS
canvas生成带二维码海报的踩坑记录
2019/09/11 HTML / CSS
Napapijri西班牙在线商店:夹克、外套、运动衫等
2020/11/05 全球购物
降消项目实施方案
2014/03/30 职场文书
拖欠货款起诉状
2015/05/20 职场文书
护士旷工检讨书
2015/08/15 职场文书
责任书格式
2019/04/18 职场文书
使用Oracle命令进行数据库备份与还原
2021/12/06 Oracle