当前位置: 首页 > news >正文

【Vue】指令扩充(指令修饰符、样式绑定)

目录

指令修饰符

按键修饰符

事件修饰符 

 双向绑定指令修饰符

输入框

表单域

下拉框

单选按钮

复选框

样式绑定 

分类

绑定class

绑定style

tab页切换示例


指令修饰符

作用

借助指令修饰符,可以让指令的功能更强大

分类

  1. 按键修饰符:用来检测用户的按键,配合键盘事件使用,keydown和keyup
  2. 事件修饰符:简化程序对于阻止冒泡、阻止默认行为的操作
  3. 双向绑定指令修饰符:可以让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>

复选框

  1. 只有一个复选框:v-model绑定布尔值,关联的是复选框的checked属性
  2. 有多个复选框: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页切换示例 指令修饰符 作用 借助指令修饰符&#xff0c;可以让指令的功能更强大 分类 按键修饰符&#xff1a;用来…...

Ubuntu20.04 Rk3588 交叉编译ffmpeg7.0

firefly 公司出的rk3588的设备&#xff0c;其中已经安装了gcc 交叉编译工具&#xff0c;系统版本是Ubuntu20.04。 使用Ubuntu20.04 交叉编译ffmpeg_ubuntu下配置ffmpeg交叉编译器为arm-linux-gnueabihf-gcc-CSDN博客文章浏览阅读541次。ubuntu20.04 交叉编译ffmpeg_ubuntu下配…...

HTML常用表格与标签

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

网络安全与加密

1.Base64简单说明描述&#xff1a;Base64可以成为密码学的基石&#xff0c;非常重要。特点&#xff1a;可以将任意的二进制数据进行Base64编码结果&#xff1a;所有的数据都能被编码为并只用65个字符就能表示的文本文件。65字符&#xff1a;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数据库-索引 数据库是用来存储数据&#xff0c;在互联网应用中&#xff0c;数据…...

【图像去噪】论文精读:Pre-Trained Image Processing Transformer(IPT)

请先看【专栏介绍文章】:【图像去噪(Image Denoising)】关于【图像去噪】专栏的相关说明,包含适配人群、专栏简介、专栏亮点、阅读方法、定价理由、品质承诺、关于更新、去噪概述、文章目录、资料汇总、问题汇总(更新中) 文章目录 前言Abstract1. Introduction2. Related…...

Java SE 与 Java EE:基础与进阶的探索之旅

在编程世界中&#xff0c;Java语言以其跨平台、面向对象、丰富的类库等特点&#xff0c;成为了众多开发者和企业的首选编程语言。而Java SE与Java EE&#xff0c;作为Java平台的两个重要组成部分&#xff0c;各自承载着不同的使命&#xff0c;同时又紧密相连&#xff0c;共同构…...

ssm旅游推荐系统的设计与开发

摘 要 旅游推荐系统是一个综合性的在线旅游推荐平台&#xff0c;旨在为用户提供便捷的旅游规划和预定服务。通过该系统&#xff0c;用户能够浏览各类景点信息并进行分类查找&#xff0c;同时获取详尽的景点介绍和相关照片&#xff0c;以辅助做出旅行决策。系统提供在线门票订购…...

【人工智能】用Python和NLP工具构建文本摘要模型:使用NLTK和spaCy进行自然语言处理

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 文本摘要是自然语言处理(NLP)中的关键任务之一,广泛应用于新闻、博客、社交媒体和搜索引擎等场景。通过生成简洁而准确的文本摘要,我们可以大大提升信息处理效率。本文将探讨如何使用Python结合NLP工具…...

51c大模型~合集76

我自己的原文哦~ https://blog.51cto.com/whaosoft/12617524 #诺奖得主哈萨比斯新作登Nature&#xff0c;AlphaQubit解码出更可靠量子计算机 谷歌「Alpha」家族又壮大了&#xff0c;这次瞄准了量子计算领域。 今天凌晨&#xff0c;新晋诺贝尔化学奖得主、DeepMind 创始人哈萨…...

资源控制器--laravel进阶篇

laravel的控制器当中有个资源控制器,这个比较好用。 创建资源控制器 php artisan make:controller PhotoController --resource 创建个路由来使用该资源控制器 use App\Http\Controllers\PhotoController; Route::resource(photos, PhotoController::class); 隐式模型绑定不…...

对象:是什么,使用,遍历对象,内置对象

对象使用&#xff1a; 对象访问&#xff1a;&#xff08;对象每个属性之间用逗号隔开&#xff09; 补充&#xff1a;也可以通过 对象名[‘属性名’] 对象方法&#xff1a; 方法名:匿名函数 调用方法不需要控制台打印&#xff0c;只要调用就自动输出值 遍历对象&#xff1a; …...

设计模式:4、命令模式(双重委托)

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

DataWorks快速入门

DataWorks基于MaxCompute、Hologres、EMR、AnalyticDB、CDP等大数据引擎&#xff0c;为数据仓库、数据湖、湖仓一体等解决方案提供统一的全链路大数据开发治理平台。本文以DataWorks的部分核心功能为例&#xff0c;指导您使用DataWorks接入数据并进行业务处理、周期调度以及数据…...

EasyExcel并行导出多个excel文件并压缩下载

EasyExcel并行导出多个excel文件并压缩下载 在SpringBoot应用中,采用同步方式导出Excel文件会导致服务器在生成文件期间阻塞,特别是在处理大量数据时,这种效率较低的方法会严重影响性能。为了解决这个问题,可以采用以下改进措施:首先将导出的数据进行拆分,然后利用Compl…...

圣诞节秘诀

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

亚信安全发布《2024年第三季度网络安全威胁报告》

《亚信安全2024年第三季度网络安全威胁报告》的发布旨在从一个全面的视角解析当前的网络安全威胁环境。此报告通过详尽梳理和总结2024年第三季度的网络攻击威胁&#xff0c;目的是提供一个准确和直观的终端威胁感知。帮助用户更好地识别网络安全风险&#xff0c;并采取有效的防…...

Long noncoding RNAs and humandisease

文章名字&#xff1a;Long noncoding RNAs and humandisease Orly Wapinski and Howard Y. Chang Howard Hughes Medical Institute and Program in Epithelial Biology, Stanford, CA 94305, USA 摘要&#xff1a; 一种新型转录本&#xff0c;长非编码RNA&#xff08;lncRNA&…...

嵌入式AI之rknn yolov5初探

本文主要记录在RK3588上跑通RKNUP的rknn_yolov5_demo的过程,并且对rknn_yolov5_demo的代码进行修改,实现在显示器上同步播放rknn_yolov5_demo视频流检测结果。 首先,是RKNUP SDK的编译,参考官方SDK中的README.md文档,下载好对应的sdk编译工具链,我这边使用的是debian系统…...

《Vue零基础入门教程》第三课:起步案例

往期内容 《Vue零基础入门教程》第一课&#xff1a;Vue简介 《Vue零基础入门教程》第二课&#xff1a;搭建开发环境 做为第一个案例, 主要给大家介绍vue的最基本使用. vue使用的3步曲(重点) 引入vue.js编写页面(视图)创建App实例并挂载 1) 引入vue.js 在html的头部, 通过…...

深入浅出C#编程语言

引言 随着.NET框架的发展&#xff0c;C#&#xff08;发音为“C Sharp”&#xff09;已经成为一种非常流行且功能强大的面向对象和类型安全的编程语言。自2002年由微软首次发布以来&#xff0c;C#已经经历了多个版本的迭代&#xff0c;每个新版本都带来了更多的特性和改进。本文…...

游戏盾 :在线游戏的终极防护屏障

随着在线游戏行业的飞速发展&#xff0c;网络安全成为了游戏公司面临的重大挑战。DDoS&#xff08;分布式拒绝服务&#xff09;攻击、CC攻击等网络威胁不仅可能影响游戏的运行&#xff0c;还会损害玩家体验&#xff0c;甚至危及游戏公司的声誉。为了解决这些问题&#xff0c;游…...

工作中的问题记录笔记

1. echarts 中 词云图 页面展示数据丢失&#xff1f; 产生原因&#xff1a; 词云图默认超出画布范围不展示。 解决办法&#xff1a;在series中&#xff0c;设置属性 drawOutOfBound:true。 2. vue 中 router.go(-1) 和 router.push() 区别 Vue Router默认会缓存路由组件&…...

加载指定会话最近消息

加载指定会话最近消息 前言 上一集我们就把三个标签页的加载列表的任务给完成啦&#xff01;那么我们这一集就来完成加载指定绘画最近消息的任务。 需求分析 我们点击了某个会话之后&#xff0c;我们就会去显示我们的会话的最近的N条消息。请看下图。 我们这里涉及到两个区…...

基于tensorflow使用VGG16实现猫狗识别

import tensorflow as tf import numpy as np from tensorflow.keras import layers, models, optimizers from tensorflow.keras.preprocessing.image import ImageDataGenerator# 定义 VGG16 模型 class VGG16(tf.keras.Model):def __init__(self, num_classes2):super(VGG16…...

第18章 EXISTS 与 NOT EXISTS 关键字

一、EXISTS 关键字介绍 关键字介绍EXISTS 关联子查询通常也会和 EXISTS操作符一起来使用&#xff0c;用来检查在子查询中是否存在满足条件的行。 如果在子查询中当前的行不满足条件&#xff1a;返回 FALSE&#xff0c;继续在子查询中查找 如果在子查询中当前的行满足条件&…...

Windows多JDK版本管理工具JVMs

Windows多JDK版本管理工具JVMs 官网安装使用手动下载jdk 官网 https://github.com/ystyle/jvms 下载 https://github.com/ystyle/jvms/releases 当前下载版本为v2.1.6 安装 下载后&#xff0c;解压到某个目录。 比如&#xff1a;D:\soft\JVMs\jvms_v2.1.6_amd64 把这个目录…...

【C++】初始化列表、类型转换

目录&#xff1a; 一、const成员函数 二、初始化列表 三、类型转换 正文 一、const成员函数 &#xff08;1&#xff09;将const修饰的成员函数称之为const成员函数&#xff0c;const修饰成员函数放到成员函数参数列表的后⾯。至于为什么这么放是语法规定。 &#xff08;2&a…...

创新设计,精准仿真|SOLIDWORKS Simulation 2025新功能

SOLIDWORKS Simulation 2025 带来了多项新功能&#xff0c;不仅提高了工作效率&#xff0c;还增强了仿真的精确度。以下是五大新功能的详细介绍&#xff0c;帮助您更好地利用这些新特性提升设计仿真能力。 1. 从分析中排除实体 在复杂的装配体仿真中&#xff0c;有时需要排除某…...

vue3封装Element Plus table表格组件

支持绝大部分Element Plus原有设置属性&#xff0c;支持分页&#xff0c;支持动态适配高度 效果展示 组件代码&#xff1a; <template><div class"table-wrap" ref"tableWrap"><el-tableclass"w100 h100":data"tableInfo.…...