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+dom树型菜单类,希望朋友们一起进步
May 03 Javascript
Auntion-TableSort国人写的一个javascript表格排序的东西
Nov 12 Javascript
javascript 进阶篇2 CSS XML学习
Mar 14 Javascript
js中typeof的用法汇总
Dec 12 Javascript
JS实现一个列表中包含上移下移删除等功能
Sep 24 Javascript
AngularJS基础学习笔记之控制器
May 10 Javascript
js鼠标经过tab选项卡时实现切换延迟
Mar 24 Javascript
Angular.js中ng-include用法及多标签页面的实现方式详解
May 07 Javascript
VueJS组件之间通过props交互及验证的方式
Sep 04 Javascript
微信小程序实现图片上传、删除和预览功能的方法
Dec 18 Javascript
Koa代理Http请求的示例代码
Oct 10 Javascript
微信小程序点击顶部导航栏切换样式代码实例
Nov 12 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下利用header()函数设置浏览器缓存的代码
2010/09/01 PHP
php与flash as3 socket通信传送文件实现代码
2014/08/16 PHP
php生成与读取excel文件
2016/10/14 PHP
php分页查询的简单实现代码
2017/03/14 PHP
php中文乱码问题的终极解决方案汇总
2017/08/01 PHP
php依赖注入知识点详解
2019/09/23 PHP
web 页面分页打印的实现
2009/06/22 Javascript
extJs 下拉框联动实现代码
2010/04/09 Javascript
常用一些Javascript判断函数
2012/08/14 Javascript
jQuery源码解读之hasClass()方法分析
2015/02/20 Javascript
jQuery插件slider实现拖动滑块选取价格范围
2015/04/30 Javascript
AngularJS身份验证的方法
2016/02/17 Javascript
微信小程序 开发经验整理
2017/02/15 Javascript
详解react-router4 异步加载路由两种方法
2017/09/12 Javascript
Bootstrap Table 删除和批量删除
2017/09/22 Javascript
Angularjs渲染的 using 指令的星级评分系统示例
2017/11/09 Javascript
js 毫秒转天时分秒的实例
2017/11/17 Javascript
Vuex的基本概念、项目搭建以及入坑点
2018/11/04 Javascript
Vue.js的动态组件模板的实现
2018/11/26 Javascript
vue + node如何通过一个Txt文件批量生成MP3并压缩成Zip
2020/06/02 Javascript
Vue实现省市区三级联动
2020/12/27 Vue.js
Python ValueError: invalid literal for int() with base 10 实用解决方法
2015/06/21 Python
python抓取并保存html页面时乱码问题的解决方法
2016/07/01 Python
Python实现文件内容批量追加的方法示例
2017/08/29 Python
Python针对给定列表中元素进行翻转操作的方法分析
2018/04/27 Python
pandas数据筛选和csv操作的实现方法
2019/07/02 Python
python脚本执行CMD命令并返回结果的例子
2019/08/14 Python
python Plotly绘图工具的简单使用
2020/03/03 Python
python安装读取grib库总结(推荐)
2020/06/24 Python
HTML5 Canvas如何实现纹理填充与描边(Fill And Stroke)
2013/07/15 HTML / CSS
amazeui页面分析之登录页面的示例代码
2020/08/25 HTML / CSS
澳大利亚的奢侈品牌:Oroton
2016/08/26 全球购物
数百万免费的图形资源:Freepik
2020/09/21 全球购物
大学校园活动策划书
2014/02/04 职场文书
出生公证书
2015/01/23 职场文书
Ajax常用封装库——Axios的使用
2021/05/08 Javascript