今天做项目的时候,子组件中数据(原本固定的数据)需要父组件动态传入,如果一开始初始化用到的数据、但当时还没有获取到,初始化结束就不会更新数据了。只有监听这两个属性,再重新执行初始化。

1、watch是一个对象,对象就有键跟值,

  键就是我们要监听的数据,

  值可以是函数:当我们监听的数据发生变化时,需要执行的函数,这个函数有两个形参,第一个是当前的值,第二个是变化后的值;

  值也可以是method中的函数名:函数名要用引号来包裹

  值也可以是包括选项的对象,老厉害了,老厉害了

    选项包含三个:

    A、第一个值handle:其值是一个回调函数,就是监听对象对话的时候需要执行的函数

    B、第二个值deep:其值true 或者 false,是否深度监听(一般监听是不能监听到对象属性值变化的,数组除外)

    C、第三个值immediate:其值 true 或者 false,是否以当前的初始值执行handle函数(当值第一次绑定时,不会执行监听函数,只有值发生改变时才会执行。如果我们需要在最初绑定值的时候也执行函数,则就需要用到immediate属性。)。

(1)通过watch监听data数据的变化,数据发生变化时,就会打印当前的值

watch: {
data(val, newval) {
console.log(val)
console.log(newval)
}
}

(2)通过watch监听docData数据的变化,数据发生变化时,this.change_number++(使用深度监听)

watch: {
docData: {
handler(newVal) {
this.change_number++
},
deep: true,
  immediate: false,
}
}

(3)通过watch监听data数据的变化,数据发生变化时,执行changeData方法

watch: {
data: 'changeData' // 值可以为methods的方法名
},
methods: {
changeData(curVal,oldVal){
    conosle.log(curVal,oldVal)
  }
}

  

vue中监听数据变化 watch的更多相关文章

  1. vue.js之过滤器,自定义指令,自定义键盘信息以及监听数据变化

    一.监听数据变化 1.监听数据变化有两种,深度和浅度,形式如下: vm.$watch(name,fnCb); //浅度 vm.$watch(name,fnCb,{deep:true}); //深度监视 ...

  2. vue教程2-08 自定义键盘信息、监听数据变化vm.$watch

    vue教程2-08 自定义键盘信息 @keydown.up @keydown.enter @keydown.a/b/c.... 自定义键盘信息: Vue.directive('on').keyCode ...

  3. 关于微信小程序使用watch监听数据变化的方法

    众所周知,Vue中,可以使用监听属性 watch来观察和响应 Vue 实例上的数据变化,那么小程序能不能实现这一点呢? 监听器的原理,是将data中需监听的数据写在watch对象中,并给其提供一个方法 ...

  4. $scope.$watch()——监听数据变化

    $scope.$watch(watchFn, watchAction, [deepWatch]):监听数据变化,三个参数 --watchFn:监听的对象,一个带有Angular 表达式或者函数的字符串 ...

  5. 在vue中监听storage的变化

    1.首先在main.js中给Vue.protorype注册一个全局方法,其中,我们约定好了想要监听的sessionStorage的key值为’watchStorage’,然后创建一个StorageEv ...

  6. $watch监听数据变化和run方法

    angular中$watch方法可以监听数据的变化. $scope.$watch('phone',function(){ $scope.phone.fre = $scope.phone.num> ...

  7. mvc 缓存 sqlCacheDependency 监听数据变化

    mvc 缓存   对于MVC有Control缓存和Action缓存. 一.Control缓存 Control缓存即是把缓存应用到整个Control上,该Control下的所有Action都会被缓存起来 ...

  8. Vue中使用watch来监听数据变化

    写法一: methods:{ //监听isMD upProp(){ if(this.isMD){//如果isMD等于true 就把storeManagerName赋值给isStoreManagerNa ...

  9. vue中监听路由参数的变化

    在vue项目中,假使我们在同一个路由下,只是改变路由后面的参数值,期望达到数据的更新. mounted: () =>{ this.id = this.$route.query.id; this. ...

随机推荐

  1. CentOS 安装 Mongodb详解 --- 有Linux基础

    安装包:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.4.1.tgz 安装过程 安装pstree小工具,以及其使用 关闭 ...

  2. CA证书申请+IIS配置HTTPS+默认访问https路径

    引用别人博文内容:https://www.cnblogs.com/lichunting/p/9274422.html 一.CA证书申请 (一). 新StartSSL注册帐号 1.    StartSS ...

  3. python对列表中名字进行修改,在每个名字后面加入‘the Great’

    第一种方法:使用enumerate函数 def make_great(magicians): for i ,name in enumerate(magicians): magicians[i] = m ...

  4. 联想 ThinkPad 笔记本 Fn 键 关闭与启用方法

    联想 ThinkPad 笔记本 Fn 键 关闭与启用方法 [最快捷的方式] 按 Fn + Esc 键,进行切换启用或者关闭 Fn 功能键 So easy!!! ^_^

  5. JavaScript DOM 编程艺术(第二版) 常用JS小脚本

    function addLoadEvent(func) { var oldonload = window.onload; if (typeof window.onload != 'function') ...

  6. java:面向对象(接口(续),Compareble重写,Comparator接口:比较器的重写,内部类,垃圾回收机制)

    接口: *接口定义:使用interface关键字 * [修饰符] interface 接口名 [extends 父接口1,父接口2...]{ * //常量的声明 * //方法的声明 * } *接口成员 ...

  7. 开发单体web shop] 6. 商品分类和轮播广告展示

    目录 商品分类&轮播广告 商品分类|ProductCategory 需求分析 开发梳理 编码实现 轮播广告|SlideAD 需求分析 开发梳理 编码实现 福利讲解 源码下载 下节预告 商品分类 ...

  8. Java Applet基础——输出HelloWorld

    前言: 我自己不专用applet,仅仅是了解一下,如果有不对的地方,还望大家多多帮助~谢谢! 一. 准备环境 1. 安装Java的编译环境(另行百度哦~) 2. 下载 applet.jar ,放在项目 ...

  9. 【C/C++】assert()函数用法总结

    assert()函数用法总结 assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义: #include <assert.h> ...

  10. AKKA文档2.2(java)——术语,概念

    原文:http://doc.akka.io/docs/akka/2.3.6/general/terminology.html 译者:吴京润 本章我们试图建立一个通用的术语列表,用来定义有关并发和分布式 ...