两周掌握Vue3(四):计算属性、监听属性、事件处理

文章目录

  • 一、计算属性
    • 1.什么是计算属性
    • 2.代码示例
  • 二、监听属性
  • 三、事件处理

代码仓库:跳转
当前分支:04

一、计算属性

1.什么是计算属性

Vue 中的计算属性具有以下作用:

  1. 数据处理:计算属性可以用于对数据进行处理和计算,例如对原始数据进行格式化、筛选、排序等操作,以便在视图中直接使用处理后的数据。

  2. 响应式更新:计算属性会根据其所依赖的响应式属性的变化而自动更新。这意味着当依赖的数据发生变化时,计算属性会自动重新计算其值,从而保持视图的实时更新。

  3. 模块化和复用:通过将复杂的数据处理逻辑封装在计算属性中,可以提高代码的可维护性和可读性。此外,计算属性还可以在不同的组件中进行复用,从而避免重复编写相同的数据处理逻辑。

  4. 缓存:计算属性会缓存其计算结果,只有在依赖的响应式属性发生变化时才会重新计算。这样可以避免不必要的重复计算,提高性能。

总的来说,计算属性在Vue中扮演着对数据进行处理、响应式更新、模块化和复用以及缓存等方面的重要角色,能够帮助我们更加高效地管理和处理组件中的数据。

2.代码示例

在这个示例中,我们定义了一个名为price的数据属性和一个名为discount的数据属性,它们分别表示商品的原始价格和折扣比例。然后,在computed属性中,我们定义了两个计算属性originalPrice和discountedPrice,分别用于计算原始价格和折扣后的价格。

当price或discount发生变化时,originalPrice和discountedPrice会自动重新计算其值,并且在模板中使用它们时会自动更新视图。这样,我们就可以方便地对价格进行处理和计算,而且不需要手动管理其更新逻辑。

App.vue

<template><div><p>原始价格:{{ originalPrice }}</p><p>折扣后的价格:{{ discountedPrice }}</p></div>
</template><script>
export default {data() {return {price: 100,discount: 0.2};},computed: {originalPrice() {return this.price;},discountedPrice() {return this.price * (1 - this.discount);}}
};
</script>
  • 效果:

在这里插入图片描述

二、监听属性

在 Vue 3 中,我们可以使用 watch 函数来监听属性的变化。

watch 函数接受两个参数:要监听的属性和回调函数。当被监听的属性发生变化时,回调函数就会被触发。

以下是一个完整的代码示例:

MyCounter.vue

<template><div><p>当前计数:{{ count }}</p><button @click="increment">增加计数</button></div>
</template><script>
import { ref, watch } from 'vue';export default {setup() {const count = ref(0);function increment() {count.value++;}watch(count, (newValue, oldValue) => {console.log(`计数从 ${oldValue} 变为 ${newValue}`);});return {count,increment};}
};
</script>

在这个示例中,我们首先导入了 refwatch 函数。然后在 setup 函数中,我们使用 ref 创建了一个名为 count 的响应式属性,并定义了一个 increment 函数来增加 count 的值。接着,我们使用 watch 函数来监听 count 的变化,并在回调函数中打印出新旧值。

当点击按钮增加计数时,count 的值会发生变化,watch 中的回调函数就会被触发,打印出新旧值。这样,我们就可以方便地监听属性的变化,并在变化时执行相应的逻辑。

在这里插入图片描述

三、事件处理

我们可以使用 v-on 指令来监听 DOM 事件,从而执行 JavaScript 代码。

v-on 指令可以缩写为 @ 符号。以下是代码示例:

ClickCom.vue

<template><button @click="handleClick">点击我</button></template><script>export default {methods: {handleClick() {alert('按钮被点击了!')}}};</script>

在这里插入图片描述

  • 事件:

原生 DOM 事件是指由浏览器原生支持的事件,Vue 3中支持的原生 DOM 事件包括但不限于:

  1. 点击事件(click)
  2. 双击事件(dblclick)
  3. 鼠标移入事件(mouseenter)
  4. 鼠标移出事件(mouseleave)
  5. 键盘按下事件(keydown)
  6. 键盘松开事件(keyup)
  7. 输入事件(input)
  8. 变化事件(change)
  9. 提交事件(submit)
  10. 滚动事件(scroll)
  11. 聚焦事件(focus)
  12. 失焦事件(blur)
  13. 鼠标移动事件(mousemove)
  14. 鼠标按下事件(mousedown)
  15. 鼠标松开事件(mouseup)
  16. … 拖拽事件(drag)
  17. … 拖拽开始事件(dragstart)
  18. … 拖拽结束事件(dragend)
  19. … 拖拽进入目标元素事件(dragenter)
  20. … 拖拽离开目标元素事件(dragleave)

这些是常见的原生 DOM 事件,Vue 3可以通过@符号在模板中绑定这些事件,并在对应的处理函数中执行相应的逻辑。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/615757.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

格雷希尔G65系列快速接头满足汽车减震器的气压、油压测试要求

当汽车经过不平路面时&#xff0c;汽车减震器可以抑制弹簧吸震后因反弹带来的震荡和来自路面的冲击&#xff0c;为乘客带来平稳舒适的行车体验。减震器在出厂之前&#xff0c;需要模拟汽车的真实行驶环境&#xff0c;在模拟当中需要对它们进行气压和油压的轮番测试。 客户的测试…

ssm基于java web的防疫工作志愿者服务平台的设计与实现论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本防疫工作志愿者服务平台就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数…

PHP短链接url还原成长链接

在开发过程中&#xff0c;碰到了需要校验用户回填的短链接是不是系统所需要的&#xff0c;于是就需要还原找出短链接所对应的长链接。 长链接转短链接 在百度上搜索程序员&#xff0c;跳转页面后的url就是一个长链接。当然你可以从任何地方复制一个长链接过来。 长链接 http…

stm32---输入捕获实验实操(巨详细)

这次来分享上次没说完的输入捕获的知识点 实验中用到两个引脚&#xff0c;一个是通用定时器 TIM3 的通道 1&#xff0c;即 PA6&#xff0c;用于输出 PWM 信号&#xff0c;另一 个是高级控制定时器 TIM1 的通道 1&#xff0c;即 PA8&#xff0c;用于 PWM 输入捕获&#xff0c;实…

vue3 生命周期

与 2.x 版本生命周期相对应的组合式 API beforeCreate -> 使用 setup() created -> 使用 setup() beforeMount -> onBeforeMount mounted -> onMounted beforeUpdate -> onBeforeUpdate updated -> onUpdated beforeDestroy -> onBeforeUnmount destroye…

window中安装Apache http server(httpd-2.4.58-win64-VS17)

windows中安装Apache http server(httpd-2.4.58-win64-VS17) 1、下载windows版本的的httpd, https://httpd.apache.org/docs/current/platform/windows.html#down 这里选择的是Apache Lounge编译的版本 https://www.apachelounge.com/download/ 2、解压到指定目录&#xff0c;这…

如何修复DLL错误或丢失的问题,这里提供几种方法

DLL错误是指DLL文件的任何错误&#xff0c;一种以.dll文件扩展名结尾的文件。 DLL错误可能出现在微软的任何操作系统中&#xff0c;包括Windows 10、Windows 8、Windows 7、Windows Vista和Windows XP。 DLL错误尤其麻烦&#xff0c;因为存在许多这样类型的文件&#xff0c;所…

入门教程:使用 Postman 发送 post 请求

Postman 是一个实用的开发工具&#xff0c;它让发送各类 POST 请求成为了可能&#xff0c;包括文本、JSON、XML 以及文件等。开发者利用此工具不仅能够检验API的功能性&#xff0c;还能仿真客户端的请求行为&#xff0c;进而深入了解客户端如何与 API 进行互动。 HTTP 协议中的…

半小时实现GPT纯血鸿蒙版

仅需半小时&#xff0c;即可实现纯血鸿蒙版本的ChatGPT&#xff01; 废话少说&#xff0c;先看效果图&#xff1a; 如上图所示&#xff0c;这个小Demo实现了AI智能问答。靠右加粗的文本是用户点击底部提交按钮后出现的&#xff1b;后面靠左对齐的普通文本是来自AI的回答内容。…

IP定位技术:如何保护患者的隐私和医疗数据安全?

随着科技的飞速发展&#xff0c;互联网已经深入到我们生活的方方面面&#xff0c;医疗行业也不例外。然而&#xff0c;这也带来了网络安全问题。如何保护患者的隐私和医疗数据的安全&#xff0c;成为了医疗行业面临的重大挑战。IP定位技术的应用&#xff0c;为解决这一问题提供…

Unity中URP下抓屏的 开启 和 使用

文章目录 前言一、抓屏开启1、Unity下开启抓屏2、Shader中开启抓屏 二、抓屏使用1、设置为半透明渲染队列&#xff0c;关闭深度写入2、申明纹理和采样器3、在片元着色器使用请添加图片描述 三、测试代码 前言 我们在这篇文章中看一下&#xff0c;URP下怎么开启抓屏。 一、抓屏…

《共建开源》系列:Airtest-Framework - UI自动化框架系统

Airtest- Framework 平台简介 Airtest- Framework 是 基于 unittest、Flask、Airtest 搭建的 开源的 UI 自动化框架系统 提供 HTTP API 接口&#xff0c;实现自动解析包名并自动执行 相应目录下的 Case。目前仅支持单台设备连接。多个任务会自动排队处理。 系统要求 Pytho…

【动态规划】【二分查找】C++算法 466 统计重复个数

作者推荐 【动态规划】458:可怜的小猪 涉及知识点 动态规划 二分查找 力扣:466 统计重复个数 定义 str [s, n] 表示 str 由 n 个字符串 s 连接构成。 例如&#xff0c;str [“abc”, 3] “abcabcabc” 。 如果可以从 s2 中删除某些字符使其变为 s1&#xff0c;则称字符串…

互信息法的原理详解

文章目录 互信息法&#xff08;上&#xff09;互信息是什么从信息增益角度理解互信息从变量分布一致角度理解互信息 卡方检验与离散变量的互信息法 互信息法&#xff08;上&#xff09; 尽管f_regression巧妙的构建了一个F统计量&#xff0c;并借此成功的借助假设检验来判断变…

跨境商城系统如何开发代购商城、国际物流、一件代发等功能?

跨境商城系统的开发涉及到多个方面&#xff0c;其中代购商城、国际物流和一件代发等功能是其中的重要组成部分。本文将详细介绍如何开发这些功能&#xff0c;以帮助跨境商城系统更好地满足市场需求。 一、代购商城的开发 代购商城是跨境商城系统中的重要功能之一&#xff0c;它…

互联网加竞赛 基于大数据的股票量化分析与股价预测系统

文章目录 0 前言1 课题背景2 实现效果3 设计原理QTChartsarma模型预测K-means聚类算法算法实现关键问题说明 4 部分核心代码5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于大数据的股票量化分析与股价预测系统 该项目较为新颖…

小程序基础学习(导航栏组件)

目标&#xff1a;把导航栏抽离成组件&#xff0c;

oracle 19c容器数据库data dump数据泵传输数据(2)---11g导19c

目录 1.在11gnon-cdb数据库中创建测试用户 2.在19cCDB容器数据库中新建pdb2 3.执行命令导出 4.执行命令导入 Exporting from a Non-CDB and Importing into a PDB 我們要記住一点&#xff1a;如果是全库导出导入的话&#xff0c;目标数据库没有的表空间我们要事先创建&#…

提高iOS App开发效率的方法

引言 随着智能手机的普及&#xff0c;iOS App开发成为越来越受欢迎的技术领域之一。许多人选择开发iOS应用程序来满足市场需求&#xff0c;但是iOS App开发需要掌握一些关键技术和工具&#xff0c;以提高开发效率和质量。本文将介绍一些关键点&#xff0c;可以帮助你进行高效的…

基础知识篇(一)Acticity生命周期

Activity 类是 Android 应用的关键组件&#xff0c;而 activity 的启动和组合方式是平台应用模型的基本组成部分。与使用 main() 方法启动应用的编程范式不同&#xff0c;Android 系统会通过调用与其生命周期特定阶段对应的特定回调方法&#xff0c;在 Activity 实例中启动代码…