使用watch来侦听data中数据的变化,watch中的属性(watch是对象格式)一定是data 中已经存在的数据。

使用场景:数据变化时执行异步或开销比较大的操作。

典型应用:http://www.pinyinzi.cn/

a. 监听器监听data中数据的变化(当前)

b. 监听器watch属性值是一个对象

c. 监听器对象里的属性就是data中已经存在的数据的名

d. 监听器里面属性的值是一个处理函数。函数有2个形参:新值、旧值

e. watch默认只能监听字面量(data中的表面数据,不能监听data中的数组对象等里面数据的变化)

想要监听对象里面的数据,需要深度监听

语法:

objname: {handler(val),deep: true}

函数handler参数就一个:对象是引用传值

深度监听的处理函数的名字handler不能变其他的,只能是这个名字

watch与computed的区别?

a. 在实现相同功能的时候,计算属性的代码复杂度要比监听器要低;

b. 计算属性支持深度监听(默认)

后期使用上如何选择?

a. 能用计算属性就用计算属性;

b. 如果是异步等代码,这个时候可以优先考虑watch

c. 在深度监听的时候建议考虑计算属性

d. 只是学习测试的时候,看你心情

<div class='app'>
<input type="text" placeholder="姓" v-model="xing">
<input type="text" placeholder="名" v-model="ming">
<input type="text" placeholder="姓名" v-model="xm" >
</div>
</body>
<script src='./js/vue.js'></script>
<script>
new Vue({
el: '.app',
data: {
message: '',
directives: '',
xing:'',
ming:'',
xm:'',
},
watch:{
// 监听姓的变化,具有两个参数,分别表示新的数据和旧的数据
xing:function(x,j){
// console.log(x,j);
// 将新的数据复制到“姓名”中
this.xm = x + this.ming
},
ming:function(x,j){
this.xm = this.xing + x
}
}
})

深度监听:

将需要监听的数据放置到一个对象中,在html标签元素的自定义属性v-model的值上添加对象的名称,最后在监听中使用深度监听的语法

HTML语句
<input type="text" placeholder="姓" v-model="name.xing">
<input type="text" placeholder="名" v-model="name.ming">
<input type="text" placeholder="姓名" v-model="name.xm" >
//数据:
data: {
name:{
xing:'',
ming:'',
xm:'',
}
}, //监听:
watch:{
// 监听这个对象
name:{
// 第一个值适用于监听的函数,具有一个参数,表示这个对象
handler(val){
// console.log(val)
val.xm = val.xing + val.ming
},
// 深度监听的标志
deep:true
}
}

使用计算属性

HTML
<input type="text" placeholder="姓" v-model="xing">
<input type="text" placeholder="名" v-model="ming">
<input type="text" placeholder="姓名" v-model="xm" >
直接在data里面添加:
xing:'',
ming:'',
计算属性:
computed:{
xm(){
return this.xing + this.ming
}
}

使用计算属性(深度):

HTML更改
<input type="text" placeholder="姓" v-model="name.xing">
<input type="text" placeholder="名" v-model="name.ming">
<input type="text" placeholder="姓名" v-model="xm" >
数据修改
name:{
xing:'',
ming:'',
}
计算属性
computed:{
xm(){
return this.name.xing + this.name.ming
}
}
 

Vue——监听器watch的更多相关文章

  1. vue监听器watch & 计算属性computed

    侦听器watch vue中watch是用来监听vue实例中的数据变化 watch监听时有几个属性: handle:其值是一个回调函数,就是监听对象对话的时候需要执行的函数 deep:其值true 或者 ...

  2. Vue 监听器和计算属性到底有什么不同?

    各自的适用场景 计算属性临时快照 官方文档对于计算属性提到了一个重要的点子--"临时快照"(可能就是前面说的计算属性缓存),每当源状态发生变化时,就会创建一个新的快照. 有时候创建 ...

  3. Vue.js-05:第五章 - 计算属性与监听器

    一.前言 在 Vue 中,我们可以很方便的将数据使用插值表达式( Mustache 语法)的方式渲染到页面元素中,但是插值表达式的设计初衷是用于简单运算,即我们不应该对差值做过多的操作.当我们需要对差 ...

  4. vue的计算属性computed和监听器watch

    <template> <div> this is A.vue <br> <!--计算属性--> <label for="msg" ...

  5. Vue学习3:计算属性computed与监听器

    下面是计算属性相关代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...

  6. Vue(基础三)_监听器与计算属性

    一.前言 本文主要涉及:     1.watch()监听单个属性 2.computed可以监听多个属性 3.点击li标签切换音乐案例 二.主要内容 1.watch()监听器(监听单一数据) (1)监听 ...

  7. VUE 学习笔记 四 计算属性和监听器

    1.计算属性 对于任何复杂逻辑,你都应当使用计算属性 <div id="example"> <p>Original message: "{{ me ...

  8. Vue双向绑定的实现原理系列(三):监听器Observer和订阅者Watcher

    监听器Observer和订阅者Watcher 实现简单版Vue的过程,主要实现{{}}.v-model和事件指令的功能 主要分为三个部分 github源码 1.数据监听器Observer,能够对数据对 ...

  9. vue 双向数据绑定的实现学习(二)- 监听器的实现

    废话:上一篇https://www.cnblogs.com/adouwt/p/9928278.html 提到了vue实现的基本实现原理:Object.defineProperty() -数据劫持 和  ...

随机推荐

  1. 第7.9节 案例详解:Python类封装

    上节介绍了Python中类的封装机制,本节结合一个具体例子进行详细说明. 我们定义一个Person类,其内部有姓名.年龄和类型三个实例变量,并定义了相关的存取方法: class Person():   ...

  2. PyQt专题结题感言

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 今天写完PyQt专题显示部件的最后一篇文章,长长的 ...

  3. Python中repr(变量)和str(变量)的返回值有什么区别和联系

    Python中repr(变量)和str(变量)都返回一个描述对象的字符串,二者有关联又有不同.由于Python3.0后都是新式类,我们的分析也是基于新式类进行的.基于object派生的新式类中二者之间 ...

  4. PyQt(Python+Qt)学习随笔:QListWidget插入多项的insertItems方法

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 除了insertItem方法能插入项外,QListWidget支持一次插入多个项,对应的方法就是in ...

  5. js实现跳转的几种方式

    1. window.open("url"); 2.用自定义函数 <script> function openWin(tag,obj) { obj.target=&quo ...

  6. POJ3565

    题目大意: 给定\(n\)个蚂蚁和\(n\)颗苹果树的坐标,要求每个蚂蚁爬到一颗苹果树旁,使得每个蚂蚁路线不相交且路线总长度最小,求每个蚂蚁爬到哪个苹果树旁? 首先假设有两只蚂蚁路径相交,那么这两个蚂 ...

  7. [python学习手册-笔记]004.动态类型

    004.动态类型 ❝ 本系列文章是我个人学习<python学习手册(第五版)>的学习笔记,其中大部分内容为该书的总结和个人理解,小部分内容为相关知识点的扩展. 非商业用途转载请注明作者和出 ...

  8. antdv的Upload组件实现前端压缩图片并自定义上传功能

    Ant Design of Vue的Upload组件有几个重要的api属性: beforeUpload: 上传文件之前的钩子函数,支持返回一个Promise对象. customRequest: 覆盖组 ...

  9. [OI笔记]每周刷题记录

    一些题库: bzoj.uoj.luogu(洛谷).CF.loj.hdu.poj.51nod 下面是一些近期的做题记录 省选爆炸-然后大概就先这样了,要回去读一段时间文化课,如果文化课还不错的话也许还会 ...

  10. Codis集群相关

    在大数据高并发场景下,单个 Redis 实例往往会显得捉襟见肘.首先体现在内存上,单个 Redis 的内存不宜过大,内存太大会导致 rdb 文件过大,进一步导致主从同步时全量同步时间过长,在实例重启恢 ...