【测试平台开发】Vue的事件修饰符、按键修饰符、计算属性学习教程

news/2024/11/30 0:03:38/文章来源:https://www.cnblogs.com/gxj521test/p/18577829

Vue.js是一个构建用户界面的渐进式框架,它提供了许多强大的功能,今天将详细介绍Vue.js中的事件修饰符、按键修饰符和计算属性将从基础开始,逐步深入讲解这些概念,并通过示例代码帮助小白快速上手。

一、事件修饰符

事件修饰符用于修改事件的默认行为。Vue提供了一些内置的事件修饰符,如.stop、.prevent、.once、.capture、.self和.passive。

1.stop:阻止事件冒泡。

<div @click="outerClick"><button @click.stop="innerClick">点击我</button>
</div>
<script>
new Vue({el: '#app',methods: {outerClick() {console.log('外层div被点击');},innerClick() {console.log('按钮被点击,但冒泡被阻止');}}
});
</script>

2.prevent:阻止默认行为。

<a href="https://www.baidu.com" @click.prevent="linkClick">点击我</a>
<script>
new Vue({el: '#app',methods: {linkClick() {console.log('链接被点击,但默认跳转被阻止');}}
});
</script>

3.once:事件只触发一次。

<button @click.once="oneTimeClick">点击我</button>
<script>
new Vue({el: '#app',methods: {oneTimeClick() {console.log('按钮只被点击一次');}}
});
</script>

4.capture:使用事件捕获模式。

<div @click.capture="captureClick"><button @click="normalClick">点击我</button>
</div>
<script>
new Vue({el: '#app',methods: {captureClick() {console.log('捕获到点击事件');},normalClick() {console.log('普通点击事件');}}
});
</script>

5.self:只有事件的目标是当前元素时才触发。

<div @click.self="selfClick"><button @click="childClick">点击我</button>
</div>
<script>
new Vue({el: '#app',methods: {selfClick() {console.log('div被点击');},childClick() {console.log('按钮被点击,但div的self修饰符阻止了事件');}}
});
</script>

6.passive:滚动事件的默认行为将立即触发,而不会等待vue事件监听器完成。

二、按键修饰符

按键修饰符用于监听键盘事件,Vue提供了一些常用的按键别名,如.enter、.tab、.delete、.esc、.space、.up、.down、.left、.right等。

1.enter:监听回车键。

<input type="text" @keyup.enter="enterPressed">
<script>
new Vue({el: '#app',methods: {enterPressed() {console.log('回车键被按下');}}
});
</script>

2.自定义按键修饰符:可以通过Vue.config.keyCodes自定义按键别名。

Vue.config.keyCodes.f1 = 112;
<input type="text" @keyup.f1="f1Pressed">
<script>
new Vue({el: '#app',methods: {f1Pressed() {console.log('F1键被按下');}}
});
</script>

三、计算属性

计算属性主要用于封装对现有对象的各种操作,并返回一个新的数据。计算属性会根据依赖的数据变化而更新,并且在该数据没有变化时,使用缓存的计算属性数据。

1.基本计算属性:

<div id="app"><p>原始字符串: {{ message }}</p><p>反转后的字符串: {{ reversedMessage }}</p>
</div>
<script>
new Vue({el: '#app',data: {message: 'hello world'},computed: {reversedMessage() {return this.message.split('').reverse().join('');}}
});
</script>

2.计算属性的setter:

<div id="app"><p>全名: {{ fullName }}</p><p><input type="text" v-model="firstName"><input type="text" v-model="lastName"></p>
</div>
<script>
new Vue({el: '#app',data: {firstName: 'John',lastName: 'Doe'},computed: {fullName: {get() {return this.firstName + ' ' + this.lastName;},set(newValue) {const names = newValue.split(' ');this.firstName = names[0];this.lastName = names[names.length - 1];}}}
});
</script>

今日分享到此,坚持每日打卡,一步步深入测试平台开发的精髓。让我们携手并进,在知识的海洋中遨游,共同探索技术的无限可能。我相信,通过我们的共同努力与坚持,你一定能够掌握测试平台开发的技能,实现自己的技术梦想。让我们一起加油,让学习成为我们生活中最美好的习惯!

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

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

相关文章

Kubeapps可视化管理Helm Chart包

目录一.基于helm部署kubeapps1.kubeapps介绍2.添加kubeapps的repo3.搜索kubeapps4.下载指定的kubeapps版本5.基于helm部署kubeapps6.访问kubeapps的WebUI二.通过kubeapps部署应用案例1 通过kubeapps查看已经部署的Chart2.通过kubeapps搜索Chart信息 一.基于helm部署kubeapps 1.…

剪映设置封面时候如何防止文字遮挡人物 All In One

剪映设置封面时候如何防止文字遮挡人物 All In One PS 图层叠加 / 前景后景 / 透明度 照片 人物抠图 + 画中画剪映设置封面时候如何防止文字遮挡人物 All In One 原理分析 PS 图层叠加 / 前景后景 / 透明度 照片 人物抠图 + 画中画 solutionsFilmora ???人物抠图 图层叠加 图…

聊一下怎么10分钟速水中危CVE

怎么在10分钟里速水一个中危CVE题目是真的。今天晚上刚接触关于CVE的审计和提交。只能说:牛逼的是真牛逼,水的是真水。 我接下来教你,怎么在10分钟里找到一个CVE的中危漏洞并且提交。然后你就可以去咸鱼接单了,一个一铂快 打开https://code-projects.org/ 随机找一个水项目…

2024-2025-1 20241403 《计算机基础与程序设计》第十周学习总结

学期2024-2025-1 学号20241403 《计算机基础与程序设计》第十周学习总结 作业信息这个作业属于哪个课程 <班级的链接>2024-2025-1-计算机基础与程序设计](https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP)这个作业要求在哪里 <作业要求的链接>2024-2025-1计…

《Django 5 By Example》阅读笔记:p388-p454

《Django 5 By Example》学习第 15 天,p388-p454 总结,总计 66 页。 一、技术总结 1.celery 我觉得书中这种用法太简单了。 2.flower 用于监控 celery。 # 安装 pip install flower # 启动 celery -A myshop flower --basic-auth=root:root # 访问 http://127.0.0.1:555…

java学习11.29

去年22级报销管理系统基本完成,出差报销申请撤销,审批功能基本完成

Kustomize 设计理念与使用说明

Kustomize 设计理念与使用说明 一、设计理念 Kustomize 的设计理念是基于"基础配置 + 补丁"的模式,这里解释一下为什么需要在 base 目录下创建基础配置:基础配置的重要性:base 目录下的配置是所有环境共享的基础配置 包含了服务最基本的定义和配置 确保了不同环境…

【评价指标】ROC曲线与AUC

一、前置知识 ​ 真阳性(TPR):正样本被正确分类个数与所有正样本的总数的比值 \[TPR = \frac{TP}{TP+FN} \]​ 假阳性(FPR):负样本被错误分类个数与所有负样本的总数的比值 \[FPR=\frac{FN}{FN+TN} \]​ 其中,TP表示正确分类的正样本,TN表示正确分类的负样本,FN表示错误分…

overleaf中使用中文

用的是这个博客里面的方法三,很方便。 https://blog.csdn.net/m0_52037292/article/details/109768317\usepackage{CJKutf8} \usepackage{CJKutf8}\begin{document}\begin{CJK*}{UTF8}{gbsn} 数学、中英文皆可以混排。You can intersperse math, Chinese and English (Latin …

20222409 2024-2025-1 《网络与系统攻防技术》实验五实验报告

1.实验内容 1.1 本周学习内容 本周学习了信息收集与渗透测试相关技术,主要包括Metasploit、nmap和Nessus的使用。Metasploit是渗透测试框架,能提供多种攻击模块,如远程代码执行、提权和后渗透功能(如键盘记录、文件操作等),可用于模拟攻击和漏洞利用; nmap被用于扫描目标…

gin, gorm快速入门

Gin Gin入门 gin的学习要点如何定义路由:包括参数路由、通配符路由 如何处理输入输出 如何使用middleware解决AOP问题在 Gin 里面,用 Engine 来监听一个端口,是一个逻辑上的服务器。 一个 Go 进程可以创建多个 Engine。 hello, world 使用步骤:在应用中引入 Gin 依赖:go g…

20222424 2021-2022-2 《网络与系统攻防技术》实验七实验报告

20222424 2021-2022-2 《网络与系统攻防技术》实验七实验报告 1.实验内容 1.1本周学习内容Web安全基础/前后端 SQL注入原理 XSS脚本攻击 CSRF漏洞1.2实验内容及要求 本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法。具体实践有 (1)简单应用SET…