vue当中的属性,侦听器watch
computed可以根据数据的变化而变化,而watch也具备同样的功能
既然这么相似,那么两者的区别是什么呢
首先是执行顺序上有一些细微差别,dom加载完成后将立即执行computed再watch
触发事件后,若有methods则先执行再watch
其次watch是更通用的响应数据变化的属性,如果数据变化是异步的,用watch较合适
接下来了解下该如何使用吧
<div id="nieo">
<input v-model="year">
<input v-model="month">
<div id="birth">出生年月:{{year}}年 {{month}}月<div>
<div>输入次数:{{count}}</div>
<div>
我们希望能实现一个功能,可以实时对输入框的输入次数计数并显示。
之前我们用computed把数据的改变绑定到dom上,这次就用watch来实现这个需求。
watch就像vue中监控或开关一样,只要有某个动作,就会行动。
接下来写js部分的代码:
var change = new Vue({
el:"#nieo",
data:{
year:,
month:,
count:
},
computed:{
birth () {
return this.year + "." + this.month
}
},
watch:{
year () {
return this.count++
},
month () {
return this.count++
}
}
})
完成以后,打开网页看看效果,是不是每次输入都会让count的数值发生变化呢。
注意,watch的使用可以再简化一些,比如像这样:
watch:{
birth () {
return this.count++
}
}
为什么可以这样写,computed和watch的执行顺序,birth的数据由year和month组成
任何一个发生变化都会使得computed发生作用,而watch又在其后执行
因此,监听birth也能达到同样的效果
原文:https://mp.weixin.qq.com/s/MT2uutHhfkl-TJDHzu3JNQ
vue--监听器的更多相关文章
-
Vue——监听器watch
使用watch来侦听data中数据的变化,watch中的属性(watch是对象格式)一定是data 中已经存在的数据. 使用场景:数据变化时执行异步或开销比较大的操作. 典型应用:http://www ...
-
vue监听器watch &; 计算属性computed
侦听器watch vue中watch是用来监听vue实例中的数据变化 watch监听时有几个属性: handle:其值是一个回调函数,就是监听对象对话的时候需要执行的函数 deep:其值true 或者 ...
-
Vue.js-05:第五章 - 计算属性与监听器
一.前言 在 Vue 中,我们可以很方便的将数据使用插值表达式( Mustache 语法)的方式渲染到页面元素中,但是插值表达式的设计初衷是用于简单运算,即我们不应该对差值做过多的操作.当我们需要对差 ...
-
vue的计算属性computed和监听器watch
<template> <div> this is A.vue <br> <!--计算属性--> <label for="msg" ...
-
Vue学习3:计算属性computed与监听器
下面是计算属性相关代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
-
Vue(基础三)_监听器与计算属性
一.前言 本文主要涉及: 1.watch()监听单个属性 2.computed可以监听多个属性 3.点击li标签切换音乐案例 二.主要内容 1.watch()监听器(监听单一数据) (1)监听 ...
-
VUE 学习笔记 四 计算属性和监听器
1.计算属性 对于任何复杂逻辑,你都应当使用计算属性 <div id="example"> <p>Original message: "{{ me ...
-
Vue双向绑定的实现原理系列(三):监听器Observer和订阅者Watcher
监听器Observer和订阅者Watcher 实现简单版Vue的过程,主要实现{{}}.v-model和事件指令的功能 主要分为三个部分 github源码 1.数据监听器Observer,能够对数据对 ...
-
vue 双向数据绑定的实现学习(二)- 监听器的实现
废话:上一篇https://www.cnblogs.com/adouwt/p/9928278.html 提到了vue实现的基本实现原理:Object.defineProperty() -数据劫持 和 ...
-
vue 计算属性和监听器
一.计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.例如: <div> {{ message.split('').rev ...
随机推荐
-
MySql与Oracle的区别总结
在平时工作中使用这两个数据库的时候要多一些,这两数据库的使用方面存在的一些各自不同的地方,许多面试官也会问这两个的区别.所以,凭着自己的一些经验个感触,来说说这二者的区别. 使用的群众:MySql中小 ...
-
Why TestNG?
最近计划将工程中的单元测试从JUnit迁移到TestNG上面. Why TestNG(http://kaczanowscy.pl/tomek/sites/default/files/testng_vs ...
-
windows8.1+centos7双系统(装完centos后无win8引导)
原先系统为windows8.1后来装上centos7后无win8系统引导, 打开电脑进入引导界面按C 进入grub界面 输入“cat (hd0,” 按tab可查看到windows8 地址为“hd0, ...
-
深入了解VSTS的Unit Test测试属性
深入的了解一下方法上带有的属性的含义.每个方法上几乎都带有TestMethod这个属性,我们直觉告诉我们,这肯定是表示被测试函数的意思.事实也正是如此,在Unit Test里,有许多测试属性,常用的如 ...
-
linux+windows mysql导入导出sql文件
linux下 一.导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):1.导出数据和表结构:mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql# ...
-
Selenium 三种等待
问题 : 强制等待和隐式等待的区别怎么理解? 和pause有什么区别?什么时候适用pause? 第二篇文章更清楚一点. 以下内容引自: https://www.cnblogs.com/xu-jia-l ...
-
mac系统在配置navicat时连接数据的时候提示can&#39;t connect to mysql server on &#39;127.0.0.1&#39;
新建数据库连接的时候,将默认的端口号更改掉,改为3307,即可解决这个问题. 具体是为什么我也不清楚,我自己想的一个可能就是mac电脑 上的某个程序可能已经占用了3306那个默认的端口,因 ...
-
IO(基础知识)
IO流类的构造方法决定是输入流还是输出流.输入流连接一个文件,它会将文件中的内容读到流里面,read方法是将流里面的内容 往外读.输出流连接一个文件,它的write方法,是将内存中的内 ...
-
ICO流程,casestudy
https://medium.com/crypto-oracle/ico-analysis-framework-nex-case-study-bf65586b4b32
-
Codeforces 183C(有向图上的环长度)
因为公用一个系统所以大家求gcd:衡量各点之间的拓扑位置,如果到达同一点有不同的长度则取gcd. #include <cstdio> #include <cstring> #i ...