【Vue】指令扩充(指令修饰符、样式绑定)
目录
指令修饰符
按键修饰符
事件修饰符
双向绑定指令修饰符
输入框
表单域
下拉框
单选按钮
复选框
样式绑定
分类
绑定class
绑定style
tab页切换示例
指令修饰符
作用
借助指令修饰符,可以让指令的功能更强大
分类
- 按键修饰符:用来检测用户的按键,配合键盘事件使用,keydown和keyup
- 事件修饰符:简化程序对于阻止冒泡、阻止默认行为的操作
- 双向绑定指令修饰符:可以让v-model的功能更强大
按键修饰符
如下,.enter指定只有按了回车按钮才触发,其他键盘事件不触发
<template>
<div>
<input type="text" @keydown.enter="onKeydown" />
</div>
</template>
<script setup>
import { ref } from 'vue'
const onKeydown = (event) => {
console.log(event.key)
}
</script>
事件修饰符
阻止默认行为,如下会阻止页面跳转
<a href="https://baidu.com" @click.prevent>百度一下</a>
.stop:阻止冒泡,同名事件不会向上级传递
<div @click="onDivcClick">
<p @click.stop="onClick"></p>
</div>
修饰符的链式调用,表明两个同时阻止
<p @click.stop.prevent="onClick"></p>
双向绑定指令修饰符
v-model双向绑定指令:可以快速设置或获取表单控件的值,比如:输入框、文本域、下拉菜单、单选框、复选框。用在不同的表单控件上,v-model都能正确设置或获取相应的值,但内部采取的方式和关联的属性有所不同。
输入框
v-model.trim="数据":把输入框值的首尾空格去掉再同步给数据
<input type="text" v-model.trim="goods.name"/>
v-model.number="数据":尝试把输入框的值转成数字再同步给数据
<input type="text" v-model.number="goods.name"/>
v-model.lazy="数据",当失焦的时候再同步给数据,而不是实时同步
<input type="text" v-model.lazy="goods.name"/>
表单域
如下代码,可以将表单数据textarea的输入,赋值给intro变量
<template>
<div><textarea v-model="intro" cols="30" rows="4" placeholder="请输入自我介绍"></textarea><br/><br/></div>
</template><script setup>import { ref } from 'vue'const intro = ref('')const city = ref('')
</script>
下拉框
v-model收集下拉列表的值,v-model写在select上,关联的是选中的option的value
如下,选中哪个选项,会将其value值赋给city,如果设置city默认值(value),则会默认选择对应选项
<template>
<div><select v-model="city"><option value="上海">上海</option><option value="北京">北京</option><option value="广州">广州</option> <option value="深圳">深圳</option></select>
</div>
</template><script setup>import { ref } from 'vue'const intro = ref('')const city = ref('')
</script>
单选按钮
将选中的选项value值赋给sex,若要默认勾选,则设置sex默认值为对应value值就可以了
<template>
<div><input type="radio" value="male" v-model="sex"/>Male<input type="radio" value="female" v-model="sex"/>Female
</div>
</template><script setup>import { ref } from 'vue'const sex= ref('')</script>
复选框
- 只有一个复选框:v-model绑定布尔值,关联的是复选框的checked属性
- 有多个复选框:v-model绑定数组,关联的复选框的value属性,手动给复选框添加value属性
只有一个复选框的时候:
<template>
<div>
<input type="checkbox" v-model="isVisible"/>是否同意用户协议
</div>
</template>
<script setup>
import { ref } from 'vue'
const isVisible = ref(false)
</script>
多个复选框的时候:
使用数组接收已经勾选的选项的value值,如果要使用默认勾选几个选项,就把要勾选的选项的value值存在数组里
<template>
<div>
<input type="checkbox" value="LQ" v-model="hobby">篮球
<input type="checkbox" value="PingPang" v-model="hobby">乒乓球
<input type="checkbox" value="Tennis" v-model="hobby">网球
</div>
</template>
<script setup>
import { ref } from 'vue'
const hobby = ref([])
</script>
样式绑定
为了便于程序员给元素动态的设置样式,Vue扩展了v-bind语法,允许我们通过绑定class或style属性,通过数据控制元素的样式。
分类
绑定class
静态class(也就是class前面没有:)和动态class可以共存,二者会合并
语法:
三元绑定
:class="条件?'类名1':'类名2' "
对象绑定
:class="{ 类名1:条件1(成立条件,布尔值),类名2:条件2(成立条件,布尔值)……}"
三元绑定示例:
<template>
<div><p :class="isActive?'active': 'non_active'">Active</p>
</div>
</template><script setup>import { ref } from 'vue'const isActive=ref(true)
</script><style>.active{color: red;}.non_active{color:blue}
</style>
对象绑定示例:
<template>
<div><p :class="{active:isActive}">Active</p>
</div>
</template><script setup>import { ref } from 'vue'const isActive=ref(true)
</script><style>.active{color: red;}
</style>
绑定style
语法
:style="{CSS属性名:表达式1,CSS属性名:表达式2……}"
使用示例
<template>
<div><p :style="{color:colorStr}">绑定style</p>
</div>
</template><script setup>import { ref } from 'vue'const colorStr= ref('red')
</script>
也可以将属性对应属性值放到一个响应式样式对象里,在将这个对象绑定到style
<template>
<div><p :style="styleObj">绑定style对象</p>
</div>
</template><script setup>import { reactive } from 'vue'const styleObj= reactive({color:'blue',backgroundColor:'yellow'})
</script>
tab页切换示例
<template><ul><li v-for="item,index in tabs" :key="item.id"><a href="#" :class="{active:index===activeTabId}" @click="activeTabId=index">{{item.name}}</a></li></ul>
</template><script setup>import { ref } from 'vue'const tabs=[{id:1,name:'京东秒杀'},{id:2,name:'每日特价'},{id:3,name:'品类秒杀'}]const activeTabId=ref(0)
</script><style >*{margin: 0;padding: 0;}ul{display: flex;list-style: none;border-bottom: 2px solid #e01222;padding : 0 10px;}ul li{width: 100px;height: 50px;line-height: 50px;text-align: center;}ul li a{display: block;text-decoration: none;color: #333;font-weight: bold;}ul li a.active{background: #e01222;color: #fff;}
</style>
相关文章:

【Vue】指令扩充(指令修饰符、样式绑定)
目录 指令修饰符 按键修饰符 事件修饰符 双向绑定指令修饰符 输入框 表单域 下拉框 单选按钮 复选框 样式绑定 分类 绑定class 绑定style tab页切换示例 指令修饰符 作用 借助指令修饰符,可以让指令的功能更强大 分类 按键修饰符:用来…...
Ubuntu20.04 Rk3588 交叉编译ffmpeg7.0
firefly 公司出的rk3588的设备,其中已经安装了gcc 交叉编译工具,系统版本是Ubuntu20.04。 使用Ubuntu20.04 交叉编译ffmpeg_ubuntu下配置ffmpeg交叉编译器为arm-linux-gnueabihf-gcc-CSDN博客文章浏览阅读541次。ubuntu20.04 交叉编译ffmpeg_ubuntu下配…...

HTML常用表格与标签
一、table表格标签: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body> <!--有大小为1的边框--> <table border"1">…...

网络安全与加密
1.Base64简单说明描述:Base64可以成为密码学的基石,非常重要。特点:可以将任意的二进制数据进行Base64编码结果:所有的数据都能被编码为并只用65个字符就能表示的文本文件。65字符:A~Z a~z 0~9 / 对文件进行base64编码…...
MySQL数据库-索引的介绍和使用
目录 MySQL数据库-索引1.索引介绍2.索引分类3.创建索引3.1 唯一索引3.2 普通索引3.3 组合索引3.4 全文索引 4.索引使用5.查看索引6.删除索引7.索引总结7.1 优点7.2 缺点7.3 索引使用注意事项 MySQL数据库-索引 数据库是用来存储数据,在互联网应用中,数据…...
【图像去噪】论文精读:Pre-Trained Image Processing Transformer(IPT)
请先看【专栏介绍文章】:【图像去噪(Image Denoising)】关于【图像去噪】专栏的相关说明,包含适配人群、专栏简介、专栏亮点、阅读方法、定价理由、品质承诺、关于更新、去噪概述、文章目录、资料汇总、问题汇总(更新中) 文章目录 前言Abstract1. Introduction2. Related…...
Java SE 与 Java EE:基础与进阶的探索之旅
在编程世界中,Java语言以其跨平台、面向对象、丰富的类库等特点,成为了众多开发者和企业的首选编程语言。而Java SE与Java EE,作为Java平台的两个重要组成部分,各自承载着不同的使命,同时又紧密相连,共同构…...

ssm旅游推荐系统的设计与开发
摘 要 旅游推荐系统是一个综合性的在线旅游推荐平台,旨在为用户提供便捷的旅游规划和预定服务。通过该系统,用户能够浏览各类景点信息并进行分类查找,同时获取详尽的景点介绍和相关照片,以辅助做出旅行决策。系统提供在线门票订购…...
【人工智能】用Python和NLP工具构建文本摘要模型:使用NLTK和spaCy进行自然语言处理
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 文本摘要是自然语言处理(NLP)中的关键任务之一,广泛应用于新闻、博客、社交媒体和搜索引擎等场景。通过生成简洁而准确的文本摘要,我们可以大大提升信息处理效率。本文将探讨如何使用Python结合NLP工具…...

51c大模型~合集76
我自己的原文哦~ https://blog.51cto.com/whaosoft/12617524 #诺奖得主哈萨比斯新作登Nature,AlphaQubit解码出更可靠量子计算机 谷歌「Alpha」家族又壮大了,这次瞄准了量子计算领域。 今天凌晨,新晋诺贝尔化学奖得主、DeepMind 创始人哈萨…...
资源控制器--laravel进阶篇
laravel的控制器当中有个资源控制器,这个比较好用。 创建资源控制器 php artisan make:controller PhotoController --resource 创建个路由来使用该资源控制器 use App\Http\Controllers\PhotoController; Route::resource(photos, PhotoController::class); 隐式模型绑定不…...

对象:是什么,使用,遍历对象,内置对象
对象使用: 对象访问:(对象每个属性之间用逗号隔开) 补充:也可以通过 对象名[‘属性名’] 对象方法: 方法名:匿名函数 调用方法不需要控制台打印,只要调用就自动输出值 遍历对象: …...

设计模式:4、命令模式(双重委托)
目录 0、定义 1、命令模式包括四种角色 2、命令模式的UML类图 3、代码示例 0、定义 将一个请求封装为一个对象,从而使用户可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 1、命令模式包括四种角色 接…...

DataWorks快速入门
DataWorks基于MaxCompute、Hologres、EMR、AnalyticDB、CDP等大数据引擎,为数据仓库、数据湖、湖仓一体等解决方案提供统一的全链路大数据开发治理平台。本文以DataWorks的部分核心功能为例,指导您使用DataWorks接入数据并进行业务处理、周期调度以及数据…...
EasyExcel并行导出多个excel文件并压缩下载
EasyExcel并行导出多个excel文件并压缩下载 在SpringBoot应用中,采用同步方式导出Excel文件会导致服务器在生成文件期间阻塞,特别是在处理大量数据时,这种效率较低的方法会严重影响性能。为了解决这个问题,可以采用以下改进措施:首先将导出的数据进行拆分,然后利用Compl…...

圣诞节秘诀
🕰️你想在2024年圣诞节脱颖而出吗?利用我们的数据洞察,发现今年最受欢迎的礼物!无论是在亚马逊、速卖通、Shopify还是直销平台上,我们的排行榜都将帮助您找到最畅销和最受欢迎的产品。立即优化您的库存,以…...

亚信安全发布《2024年第三季度网络安全威胁报告》
《亚信安全2024年第三季度网络安全威胁报告》的发布旨在从一个全面的视角解析当前的网络安全威胁环境。此报告通过详尽梳理和总结2024年第三季度的网络攻击威胁,目的是提供一个准确和直观的终端威胁感知。帮助用户更好地识别网络安全风险,并采取有效的防…...
Long noncoding RNAs and humandisease
文章名字:Long noncoding RNAs and humandisease Orly Wapinski and Howard Y. Chang Howard Hughes Medical Institute and Program in Epithelial Biology, Stanford, CA 94305, USA 摘要: 一种新型转录本,长非编码RNA(lncRNA&…...
嵌入式AI之rknn yolov5初探
本文主要记录在RK3588上跑通RKNUP的rknn_yolov5_demo的过程,并且对rknn_yolov5_demo的代码进行修改,实现在显示器上同步播放rknn_yolov5_demo视频流检测结果。 首先,是RKNUP SDK的编译,参考官方SDK中的README.md文档,下载好对应的sdk编译工具链,我这边使用的是debian系统…...

《Vue零基础入门教程》第三课:起步案例
往期内容 《Vue零基础入门教程》第一课:Vue简介 《Vue零基础入门教程》第二课:搭建开发环境 做为第一个案例, 主要给大家介绍vue的最基本使用. vue使用的3步曲(重点) 引入vue.js编写页面(视图)创建App实例并挂载 1) 引入vue.js 在html的头部, 通过…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...

MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...

什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...