vue全家桶进阶之路12:监听器 watch
在Vue2中,监听器(watch)用于监测数据的变化,并在数据变化时执行一些操作。监听器可以用来响应用户输入、观察数据变化、执行异步操作等。
监听器的使用方法如下:
在组件的
watch
选项中定义一个或多个监听器。监听器由两部分组成:要监听的数据和数据变化时要执行的回调函数。
监听器的回调函数会在数据变化时被调用。回调函数接收两个参数:新值和旧值。
下面是一个简单的示例,演示如何在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的更多相关文章
- Vue 全家桶 + Electron 开发的一个跨三端的应用
代码地址如下:http://www.demodashi.com/demo/11738.html GitHub Repo:vue-objccn Follow: halfrost · GitHub 利用 ...
- [在线+源码]vue全家桶+Typescript开发一款习惯养成APP
# vue-ts-daily 基于Vue.js的2.5.13版本和TypeScript编写的模仿原生应用的WebApp. [源码地址](https://github.com/xiaomuzhu/vue ...
- vue证明题一,vue全家桶的构成
简单说下vue的构成,当然是简单为主,网上这东西满天飞,简单说几句就ok 1.vue是什么 vue读作view,是一种js框架.只关注于视图层,操作内容包括js,html,css 2.vue全家桶是什 ...
- Vue全家桶之组件化开发
Vue全家桶之组件化开发 一.组件 组件 (Component) 是 Vue.js 最强大的功能之一 组件可以扩展 HTML 元素,封装可重用的代码 二. 组件注册 2.1 全局注册 Vue. ...
- 用 Vue 全家桶二次开发 V2EX 社区
一.开发背景 为了全面的熟悉Vue+Vue-router+Vuex+axios技术栈,结合V2EX的开放API开发了这个简洁版的V2EX. 在线预览 (为了实现跨域,直接npm run dev部署的, ...
- Vue全家桶
简介 “简单却不失优雅,小巧而不乏大匠”. Vue.js 是一个JavaScriptMVVM库,是一套构建用户界面的渐进式框架.它是以数据驱动和组件化的思想构建的,采用自底向上增量开发的设计. 为什么 ...
- 从零开始系列之vue全家桶(3)安装使用vuex
什么是vuex? vuex:Vue提供的状态管理工具,用于同一管理我们项目中各种数据的交互和重用,存储我们需要用到数据对象. 即data中属性同时有一个或几个组件同时使用,就是data中共用的属性. ...
- 使用vue全家桶制作博客网站
前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用vue全家桶制作的博客网站 概述 该项目是基于vue全家桶(vue.vue-router.vuex.v ...
- 转载: 使用vue全家桶制作博客网站 HTML5 移动网站制作的好教程
使用vue全家桶制作博客网站 前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用vue全家桶制作的博客网站 概述 该项目是基于vue全家桶(vue. ...
- Vue全家桶介绍
一直不清楚全家桶是什么玩意,上网搜了一下,才知道就是平时项目中使用的几个依赖包,下面分享一下 Vue 全家桶介绍 Vue有著名的全家桶系列,包含了vue-router(http://router.vu ...
随机推荐
- SAP transformation特殊字符
unicode 0000 在transformation中总被翻译成,这个转义在其他语法中不存在,所以总是报错.
- RK3399编译——基于nanoPC-T4
开发环境搭建 安装依赖 sudo apt install -y bison g++-multilib git gperf libxml2-utils make python-networkx zip ...
- 解决Selenium元素拖拽不生效Bug
转载请注明出处️ 作者:测试蔡坨坨 原文链接:caituotuo.top/e8aa6c6f.html 你好,我是测试蔡坨坨. 前几天在使用Selenium进行元素拖拽操作时,发现Selenium自带的 ...
- JOI 简单题选做
就是把洛谷上评分为紫的题做了一下(汗) 前两道题没做出来,暴露了自己在 dp 上的短板. イベント巡り 2 一开始想到贪心,但发现我们只要选 \(k\) 个即可,所以可以尝试一些更劣但是编号更小的做法 ...
- day06-静态资源访问&Rest风格
SpringBoot之静态资源访问&REST风格请求 1.SpringBoot静态资源访问 1.1基本介绍 只要静态资源是放在类路径下的:/static./public./resources. ...
- K8S安全学习
k8s安全学习 一.云 云的定义看似模糊,但本质上,它是一个用于描述全球服务器网络的术语,每个服务器都有一个独特的功能.云不是一个物理实体,而是一个庞大的全球远程服务器网络,它们连接在一起,旨在作为单 ...
- Solon2 接口开发: 强化 Gateway 模式
一般可以从这几方面对 Gateway 模式进行强化: 定制异常状态码 定制基类 将一些处理独立封装成类 接口只返回数据部份,异常状态用抛 强化之后,具体的网关即简单,又功能强大.同时会对团队开发形成一 ...
- 万字血书Vue—Vuex
Vuex概述 组件之间共享数据的方式(小范围) 全局事件总线 Vuex是什么? 专门在Vue中实现集中式状态(数据)管理的一个Vue插件,可以方便的实现组件之间的数据共享. 使用Vuex统一管理状态的 ...
- 源码解读之FutureTask如何实现最大等待时间
预备知识:Java 线程挂起的常用方式有以下几种 Thread.sleep(long millis):这个方法可以让线程挂起一段时间,并释放 CPU 时间片,等待一段时间后自动恢复执行.这种方式可以用 ...
- STM32F407 学习 (0) 各种外设功能 (中)
十.高级定时器 1.重复计数器 如果我们设置重复计数器寄存器 RCR 的值为 N,那么更新事件将在定时器发生 N+1 次上溢或下溢时发生.重复计数器的特性,在控制生成 PWM 信号时很有用. 2. ...