wetch简介
最初绑定的时候是不会执行的,要等到 监听的属性 改变时才执行监听计算。那我们想要一开始就让他最初绑定的时候就执行改怎么办呢?

<div><p>obj.a: {{obj.a}}</p><p>obj.a: <input type="text" v-model="obj.a"></p>
</div>new Vue({el: '#root',data: {obj: {a: 123}},watch: {obj: {handler(newName, oldName) {console.log('obj.a changed');},immediate: true}}
})

当我们在在输入框中输入数据视图改变obj.a的值时,我们发现是无效的。受现代 JavaScript 的限制 (以及废弃 Object.observe),Vue 不能检测到对象属性的添加或删除。由于 Vue 会在初始化实例时对属性执行 getter/setter 转化过程,所以属性必须在 data 对象上存在才能让 Vue 转换它,这样才能让它是响应的。

默认情况下 handler 只监听obj这个属性它的引用的变化,我们只有给obj赋值的时候它才会监听到,比如我们在 mounted事件钩子函数中对obj进行重新赋值:

mounted: {this.obj = {a: '456'}
}

相反,如果我们需要监听obj里的属性a的值呢?这时候deep属性就派上用场了!

watch: {obj: {handler(newName, oldName) {console.log('obj.a changed');},immediate: true,deep: true}
}

deep的意思就是深入观察,监听器会一层层的往下遍历,给对象的所有属性都加上这个监听器,但是这样性能开销就会非常大了,任何修改obj里面任何一个属性都会触发这个监听器里的 handler。

watch: {'obj.a': {handler(newName, oldName) {console.log('obj.a changed');},immediate: true,// deep: true}
}

这样Vue.js才会一层一层解析下去,直到遇到属性a,然后才给a设置监听函数。

vue中watch的详细用法,带deep,immediate相关推荐

  1. 详解Vue中watch的高级用法

    转载自  详解Vue中watch的高级用法 我们通过实例代码给大家分享了Vue中watch的高级用法,对此知识点有需要的朋友可以跟着学习下. 假设有如下代码: 1 2 3 4 5 6 7 8 9 10 ...

  2. vue中computed的详细讲解

    vue中computed的详细讲解 1.定义 2.用法 3.computed的响应式依赖(缓存) 4.应用场景 1.定义 computed是vue的计算属性,是根据依赖关系进行缓存的计算,只有在它的相 ...

  3. 「后端小伙伴来学前端了」Vue中 this.$set的用法 | 可用于修改对象中数组的某一个对象、 可用于更新数据到视图

    夜晚有明月,梦里有佳人 前言 最近在写老师布置的vue项目,真的说实话,每天真就是在百度.google.bing等各个搜索引擎之间反复横跳,不然就是掘金搜一搜.思否搜一搜,还有CSDN看一看.我的前端 ...

  4. C++中 cin 的详细用法

    1.cin 简介 cin是C++编程语言中的标准输入流对象,即istream类的对象.cin主要用于从标准输入读取数据,这里的标准输入,指的是终端的键盘.此外,cout是流的对象,即ostream类的 ...

  5. vue中的keep-alive的用法详细讲解

    问题描述(什么是keep-alive) keep-alive顾名思义,保持活跃.保持谁活跃呢? 首先我们知道,因为vue就是组件化编程,一个.vue文件就是一个组件.就像万事万物一样,都有从出生到消亡 ...

  6. Vue中JSX的基本用法

    基本用法 首先需要约定一下,使用JSX组件命名采用首字母大写的驼峰命名方式,样式可以少的可以直接基于vue-styled-components写在同一个文件中,复杂的建议放在单独的_Styles.js ...

  7. vue中引入路径的用法

    一.Vue文件中引用路径的介绍 1.路径 ./ ./当前文件同级目录 2.路径 -/ -/当前文件上一级目录 3.@符号 @ 的作用是在你引入模块时,可以使用 @ 代替 /src 目录,避免易错的相对 ...

  8. Vue中v-on的基础用法、参数传递和修饰符

    目录 一.v-on的基本用法 使用v-on:click给button绑定监听事件以及回调函数,@是v-on:的缩写,也就是简写也可以使用@click.方法一般是需要写方法名加上(),在@click中可 ...

  9. 监听对象中某一项的值_Vue中watch的详细用法

    1.基本用法 下面代码是watch的一种基本用法: watch去监听单个值是否发生改变 直接写一个监听处理函数,当每次监听到cityName值发生改变时,执行函数.也可以在所监听的数据后面直接加字符串 ...

  10. vue 中provide的用法_[转]浅谈vue中provide和inject 用法

    provide:Object | () => Object inject:Array | { [key: string]: string | Symbol | Object } provide ...

最新文章

  1. every day english
  2. 第十二周项目一-实现复数类中的运算符重载(3)
  3. oracle层次查询中prior与自上而下、自下而上查询
  4. go语言api源码中文版_Go语言学习——sync.map源码剖析
  5. [js] axios拦截器原理是什么?
  6. 华为机试题2[编程题] 汽水瓶
  7. ELK5.3日志分析平台部署
  8. 华为的手册和官网视频,学习网络基础
  9. 解决报错(4种情况):0x00007FF614F73B96 处(位于 XXX.exe 中)引发的异常: Microsoft C++ 异常: cv::Exception,位于内存位置 0x000XXX
  10. nowcoder-linux
  11. VS实现格式化代码及代码缩进
  12. windows server 2008安装配置web服务器
  13. 关于裁员几点看法及建议
  14. 搭建 WordPress 博客教程(超详细)
  15. 计算机卸载打不开,电脑卸载wps后excel打不开怎么办
  16. android 离线地图 开源,android osmdroid 加载常用离线地图格式(开源的在线地图)...
  17. 直播网站html代码,怎么生成嵌入网页直播的HTML代码
  18. 时间序列平稳性检验(ADF)和白噪声检验(Ljung-Box)
  19. 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/ch
  20. ios客户端学习-itunes app 下载地址

热门文章

  1. 我国将大力发展装配式建筑 2025年装配式建筑占新建建筑比例将超30%
  2. thinkphp5.1+workman+jsonRpc
  3. date函数详细用法
  4. 从桌面运维转到网工后,我是怎样成为大厂高级网工的
  5. 以下是两段c语言代码 函数arith(),第二章习题-ddg.doc
  6. java计算器自述文件_自述文件 - Unreal Engine
  7. k8s集群Canal的网络控制
  8. 10.27Unity事件、场景烘焙、Render Texture
  9. 《Learning for Disparity Estimation through Feature Constancy》
  10. 从入门到放弃,50G编程视频免费送!