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--监听器的更多相关文章

  1. Vue——监听器watch

    使用watch来侦听data中数据的变化,watch中的属性(watch是对象格式)一定是data 中已经存在的数据. 使用场景:数据变化时执行异步或开销比较大的操作. 典型应用:http://www ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. iOS聊天客服功能(Udesk)

    前言: 在商城或者需要用户和平台交流的APP中需要用到客服功能.接下来会讲解Udesk客服功能的实现.技术文档在Udesk官网可以看到,本文讲述在项目中的集成实现流程.客服使用的PC端交流工具账号在公 ...

  2. How to Preloading content with rel preload

    The preload value of the <link> element's rel attribute allows you to write declarative fetch ...

  3. selenium--控制浏览器和简单元素操作

    控制浏览器1.driver.maximize_window() #浏览器最大化2.driver.set_windows_size(480*800) #浏览器设置成移动端大小(480*800),参数数字 ...

  4. Leetcode: Max Consecutive Ones II(unsolved locked problem)

    Given a binary array, find the maximum number of consecutive 1s in this array if you can flip at mos ...

  5. asp.net无限递归

    private void button1_Click(object sender, EventArgs e) { DialogResult dialogResult = folderBrowserDi ...

  6. python打包

    打包生成一个可执行文件(非窗口程序的) pyinstall -F  example.py  

  7. php通过pecl方式安装扩展

    安装pecl cd /usr/local/php/bin/ wget http://pear.php.net/go-pear.phar -O go-pear.php php go-pear.php # ...

  8. linux svn安装 及 常用命令

    安装 yum -y install subversion svnserve --version 显示版本信息,则表示安装成功 mkdir /home/svn 创建版本库目录 svnadmin crea ...

  9. Web应用启动时,后台自动启动一个线程(转)

    原文:http://blog.sina.com.cn/s/blog_6810dfc20101ipzq.html Web应用启动时,后台自动启动一个线程 (1)前言 前几天,manager问道一个问题: ...

  10. redis php操作命令

    redis的五种存储类型的具体用法 String 类型操作 string是redis最基本的类型,而且string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者 ...