在Vue2中,监听器(watch)用于监测数据的变化,并在数据变化时执行一些操作。监听器可以用来响应用户输入、观察数据变化、执行异步操作等。

监听器的使用方法如下:

  1. 在组件的watch选项中定义一个或多个监听器。

  2. 监听器由两部分组成:要监听的数据和数据变化时要执行的回调函数。

  3. 监听器的回调函数会在数据变化时被调用。回调函数接收两个参数:新值和旧值。

下面是一个简单的示例,演示如何在Vue2中使用监听器:

<template>
<div>
<input v-model="message"> <!-- 绑定输入框到message -->
<p>{{ reversedMessage }}</p>
</div>
</template> <script>
export default {
data() {
return {
message: 'Hello Vue!',
reversedMessage: ''
}
},
watch: {
message(newVal, oldVal) { // 在watch选项中定义监听器,监听message的变化
this.reversedMessage = newVal.split('').reverse().join('') // 在回调函数中计算reversedMessage的值
}
}
}
</script>

在上面的代码中,我们在组件的watch选项中定义了一个监听器,用于监测message数据的变化。当message的值发生变化时,监听器的回调函数会被调用,从而重新计算reversedMessage的值。

需要注意的是,在使用监听器时,应该避免在回调函数中修改监听的数据,因为这可能会导致无限循环的更新。如果需要修改监听的数据,应该使用计算属性或方法。

<template>
<div>
<input v-model="message"> <!-- 绑定输入框到message -->
<p>{{ reversedMessage }}</p>
</div>
</template> <script>
export default {
data() {
return {
message: 'Hello Vue!'
}
},
computed: {
reversedMessage() {
return this.message.split('').reverse().join('')
}
},
watch: {
reversedMessage(newVal, oldVal) { // 监听reversedMessage的变化
this.message = newVal.split('').reverse().join('') // 在回调函数中修改message的值
}
}
}
</script>

在上面的代码中,我们在组件的watch选项中定义了一个监听器,用于监测reversedMessage数据的变化。当reversedMessage的值发生变化时,监听器的回调函数会被调用,从而重新计算message的值。

需要注意的是,在回调函数中修改监听的数据会导致无限循环的更新,因为修改数据会再次触发监听器。为了避免这种情况,我们可以使用计算属性来代替直接修改数据。在上面的代码中,我们使用计算属性reversedMessage来计算反转后的字符串,从而避免了在回调函数中直接修改数据的情况。

vue全家桶进阶之路12:监听器 watch的更多相关文章

  1. Vue 全家桶 + Electron 开发的一个跨三端的应用

    代码地址如下:http://www.demodashi.com/demo/11738.html GitHub Repo:vue-objccn Follow: halfrost · GitHub 利用 ...

  2. [在线+源码]vue全家桶+Typescript开发一款习惯养成APP

    # vue-ts-daily 基于Vue.js的2.5.13版本和TypeScript编写的模仿原生应用的WebApp. [源码地址](https://github.com/xiaomuzhu/vue ...

  3. vue证明题一,vue全家桶的构成

    简单说下vue的构成,当然是简单为主,网上这东西满天飞,简单说几句就ok 1.vue是什么 vue读作view,是一种js框架.只关注于视图层,操作内容包括js,html,css 2.vue全家桶是什 ...

  4. Vue全家桶之组件化开发

    Vue全家桶之组件化开发   一.组件 组件 (Component) 是 Vue.js 最强大的功能之一 组件可以扩展 HTML 元素,封装可重用的代码   二. 组件注册 2.1 全局注册 Vue. ...

  5. 用 Vue 全家桶二次开发 V2EX 社区

    一.开发背景 为了全面的熟悉Vue+Vue-router+Vuex+axios技术栈,结合V2EX的开放API开发了这个简洁版的V2EX. 在线预览 (为了实现跨域,直接npm run dev部署的, ...

  6. Vue全家桶

    简介 “简单却不失优雅,小巧而不乏大匠”. Vue.js 是一个JavaScriptMVVM库,是一套构建用户界面的渐进式框架.它是以数据驱动和组件化的思想构建的,采用自底向上增量开发的设计. 为什么 ...

  7. 从零开始系列之vue全家桶(3)安装使用vuex

    什么是vuex? vuex:Vue提供的状态管理工具,用于同一管理我们项目中各种数据的交互和重用,存储我们需要用到数据对象. 即data中属性同时有一个或几个组件同时使用,就是data中共用的属性. ...

  8. 使用vue全家桶制作博客网站

    前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用vue全家桶制作的博客网站 概述 该项目是基于vue全家桶(vue.vue-router.vuex.v ...

  9. 转载: 使用vue全家桶制作博客网站 HTML5 移动网站制作的好教程

    使用vue全家桶制作博客网站   前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用vue全家桶制作的博客网站 概述 该项目是基于vue全家桶(vue. ...

  10. Vue全家桶介绍

    一直不清楚全家桶是什么玩意,上网搜了一下,才知道就是平时项目中使用的几个依赖包,下面分享一下 Vue 全家桶介绍 Vue有著名的全家桶系列,包含了vue-router(http://router.vu ...

随机推荐

  1. instanceof与类型转换

    instanceof与类型转换 package com.andy.base.oop.demo01.demo06; public class Teacher extends Person { } pac ...

  2. ARP欺骗工具-arpspoof

    arpspoof arpspoof是dsniff下的一个ARP欺骗工具 大概原理: 两台主机HostA 和 HostB想要进行通信的流程,那么主机A将需要知道自己的ip,mac 以及主机B的ip, m ...

  3. Android笔记--发送彩信

    发送彩信 界面还是那个界面,图片也实现了从相册进行选择图片,选择完成之后,就会回到界面里面的功能: 下面接着实现发送彩信的完整版: 具体实现如下: 界面代码不再展示,主要着重于后台的代码编写啦! 1. ...

  4. Android笔记--基础的连接数据库的操作

    start.java package com.example.myapplication; import androidx.activity.result.ActivityResult; import ...

  5. Spring--注解开发+依赖注入

    自动装配 数据层: 业务层: 自动装配: 结果: 若是将自动装配的注解放在set函数处: 结果: 结果相同,若是将set方法去掉的话: 结果: 这样的话,set方法也得到解放了耶! 以上都是按照类型装 ...

  6. Android错误之--Error retrieving parent for item: No resource found that matches the given name 'Theme.A

    改正错误 (虽然内容较少,但是还是选择单独占用一篇) 这个错误,可以说是困扰了我好久,然后就看到可以改变一下使用的Android版本,改成Android 4.0,然后就去试了试,发现真的就好了耶! 就 ...

  7. MySQL学习(十一)B树与B+树了解

    参考博客:https://www.cnblogs.com/kismetv/p/11582214.html

  8. 【微信网页授权】SpringBoot+uniapp实现网页授权获取用户基本信息

    前言 缘由 起因于本狗上一个项目本打算采用微信公众号网页授权登录做用户鉴权,但最终因公众号是未认证的订阅号,无权限获取用户信息,所以改变思路,采用登录注册方式实现用户区分.但在开发中,学习了微信网页授 ...

  9. java网络编程--2 IP,端口,通信协议,TCP/UDP对比

    java网络编程--2 IP,端口,通信协议,TCP/UDP对比 1.3.IP ip地址:InetAddress 唯一定位一台网络上的计算机 127.0.0.1 :本机localhost IP地址的分 ...

  10. ThreadPool实现机制

    Android中阻塞队列的应用有哪些 阻塞队列在 Android 中有很多应用,比如: 线程池:线程池任务的执行就是基于一个阻塞队列,如果线程池任务已满,则任务需要等待阻塞队列中的其他任务完成. Ha ...