Vue3入门-指令补充

在这里插入图片描述

🏠个人主页:Yui_
🍑操作环境:vscode\node.js
🚀所属专栏:Vue3

image.png

文章目录

  • 1. 指令修饰符
    • 1.1 按键修饰符
    • 1.2 事件修饰符
    • 1.3 v-model修饰符
  • 2. v-model用在其他表单元素上
  • 3. 样式绑定
    • 3.1 操作class
  • 4. 操作style
  • 5. 总结

1. 指令修饰符

Vue 的指令修饰符(modifier)是以点(.)表示的特殊后缀,用于改变指令的行为。
修饰符让指令更灵活,能满足更多实际开发需求。

1.1 按键修饰符

  • @keydown.enter当enter键按下时触发
  • @keyup.enter当enter键抬起时触发
    演示:
<template>
<div><input type="text" @keydown.enter="fn">
</div>
</template><script setup>const fn = ()=>{console.log('enter键被按下~')}
</script><style scoped></style>

1.2 事件修饰符

  • @事件名.stop 阻止冒泡
  • @事件名.prevent 阻止默认行为
  • @事件名.stop.prevent既阻止冒泡又阻止默认行为
<template><div @click="onDivClick"><a href="https://baidu.com" @click.prevent>百度一下</a><p @click.stop="onPClick"></p><a href="https://baidu.com" @click.stop.prevent>百度一下</a></div>
</template><script setup>
const onPClick = () => {console.log('onPClick');
}const onDivClick = () => {console.log('onDivClick');
}
</script><style>
div {width: 400px;height: 200px;background: plum;
}div a {display: block;width: 100px;text-decoration: none;background: tomato;text-align: center;color: #fff;
}div p {width: 200px;height: 100px;background: rebeccapurple;
}
</style>

1.3 v-model修饰符

  • v-model.trim 去除首尾空格
  • v-model.number 用parseFloat()转数字
  • v-model.lazy 失去焦点时同步数据,而不是输入时同步数据
<template>
<div>名称:<input type="text" v-model.lazy="goods.name"> <br><br>价格:<input type="text" v-model.trim="goods.price"> <br> <br>数量:<input type="text" v-model.number="goods.count"> <br> <br>
</div>
</template><script setup>import {reactive} from 'vue'const goods = reactive({name:'',price:'',count:''})
</script><style scoped></style>

image.png

2. v-model用在其他表单元素上

常见的表单元素都是可以用v-model绑定关联,作用是可以快速获取或者设置表单元素的值它会根据控件自动选取正确的属性来更新元素。

输入框 input:text ——> value
文本域 textarea ——> value
下拉菜单 select ——> value
单选框 input:radio ——> value
复选框 input:checkbox ——> checked / value

演示:

<template><div><!-- ⽂本域 --><textarea v-model="intro" cols="30" rows="4" placeholder="请输⼊⾃我介绍"></textarea><br /><br /><!-- 下菜菜单 --><select v-model="city"><option value="BJ">北京</option><option value="SH">上海</option><option value="SZ">深圳</option><option value="HZ">杭州</option></select><br /><br /><!-- 单选框:多个当中只能选择⼀个,需要给单选框⼿动添加 value 属性 --><input type="radio" value="a" v-model="blood" />A<input type="radio" value="b" v-model="blood" />B<input type="radio" value="ab" v-model="blood" />AB<input type="radio" value="o" v-model="blood" />O<br /><br /><input type="checkbox" v-model="isAgree" />是否同意⽤⼾协议<br /><br /><input v-model="hobby" type="checkbox" value="LQ" />篮球<input v-model="hobby" type="checkbox" value="ZQ" />⾜球<input v-model="hobby" type="checkbox" value="YMQ" />⽻⽑球<input v-model="hobby" type="checkbox" value="PPQ" />乒乓球<br /><input v-model="hobby" type="checkbox" value="PB" />跑步<input v-model="hobby" type="checkbox" value="YY" />游戏<input v-model="hobby" type="checkbox" value="PLT" />普拉提<input v-model="hobby" type="checkbox" value="LDW" />拉丁舞</div>
</template><script setup>
import { ref } from 'vue'//自我介绍
const intro = ref('')//收集城市
const city = ref('')//血型
const blood = ref('')//是否同意用户协议
const isAgree = ref(false)//爱好
const hobby = ref(['a'])
</script><style scoped></style>

结论:

  • 对于下拉表的值,v-model写在select上,关联选中option的value
  • 对于当选框的值,v-model收集单选框的value
  • 对于复选框,一个复选框,v-model绑定布尔值,关联checked属性,一组复选框,v-model绑定数组,关联value属性,给复选框手动天津value

3. 样式绑定

在 Vue 中,样式绑定常用 v-bind:classv-bind:style(或它们的简写 :class:style)来实现动态样式。

3.1 操作class

语法:

:class = "三元表达式/对象"

三元表达式

<p :class="条件?'类名1':'类名2'"></p> 

对象语法
当class动态绑定的是对象时,键就是类名,值就是布尔值,如果值为true,就添加这个类,否则就删除这个类。

<p :class="{类名1:布尔值1,类名2:布尔值2}"></p> 

注意:静态class可以于动态class共存

<p class="box" :class="{类名1:布尔值1,类名2:布尔值2}"></p> 

演示:

<script setup>
import { ref } from 'vue'
// 是否处于激活
const isActive = ref(true)
</script>
<template><div><!-- 1. 三元绑定 --><p :class="isActive ? 'active' : ''">Active1</p><!-- 2. 对象绑定 --><p :class="{ active: isActive }">Active2</p><!-- 3. 静态class与动态class共存 --><p class="item" :class="{ active: isActive }">Active3</p></div>
</template>
<style>
.active {color: red;
}
</style>

image.png

4. 操作style

语法

<div class="box" :style = "{CSS属性名1:CSS属性值,CSS属性名2:CSS属性值}"> </div>

演示

<script setup>
import { reactive } from 'vue'
// ⾏内样式对象
const styleObj = reactive({color: '#fff',backgroundColor: 'purple'
})
</script>
<template><div><p :style="styleObj">hahahahha</p></div>
</template>
<style></style>

5. 总结

Vue3指令补充的内容就到这里了,通过这些对指令应用的补充,可以更加方便我们实现想要的功能。

往期文章:
Vue3入门-必会前置知识-CSDN博客
Vue3入门-声明式渲染+数据响应式-CSDN博客
Vue3入门-指令-CSDN博客

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

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

相关文章

UDP类型套接字

理解UDP协议&#xff1a;互联网世界的"明信片"通信 UDP是什么&#xff1f;为什么需要它&#xff1f; 想象一下&#xff0c;你正在给朋友寄送两种不同的东西&#xff1a;一份重要的合同文件和一叠度假时的风景明信片。对于合同文件&#xff0c;你会选择挂号信&#xf…

redis快速入门教程

更新中基本概念安装centOS安装redis&#xff1a;yum install redis -y启动&#xff1a;systemctl start redis设置开机启动&#xff1a;systemctl enable redis检查运行状态&#xff1a;systemctl status redis远程访问编辑配置文件 vi /etc/redis.conf在其中修改为bind 0.0.0.…

UDP和TCP的主要区别是什么

UDP&#xff08;用户数据报协议&#xff09;和 TCP&#xff08;传输控制协议&#xff09;是互联网传输层的两大核心协议&#xff0c;主要区别体现在​​连接方式、可靠性、传输效率、头部开销​​及​​适用场景​​上。以下是具体对比&#xff1a;​​一、核心区别对比表​​​…

ASP .NET Core 8结合JWT轻松实现身份验证和授权

身份验证和授权是每一个后端服务必不可少的&#xff0c;可以实现对非法请求进行拦截&#xff0c;能够有效保护数据的安全性。 JSON Web Token&#xff08;JWT&#xff09;是一项开放标准&#xff08;RFC 7519&#xff09;&#xff0c;它定义了一种紧凑且自包含的方法&#xff…

5G时代的智慧灯杆:塔能“一杆多用”方案如何激活城市新基建?

在《5G应用“扬帆”行动计划》持续推进的进程之中&#xff0c;智慧杆已然成为了5G基站部署环节极为重要的载体&#xff0c;并且被明确地归入到新型基础设施建设的重点范畴之内。相关政策提出&#xff0c;要在2025年达成重点区域5G网络全面且深度覆盖的目标&#xff0c;与此同时…

护照阅读器:国外证件识别的 OCR “解码师”

国外证件版式多样、语种繁杂&#xff0c;人工识别不仅耗时&#xff0c;还易因翻译误差、格式不熟悉导致信息错漏。尤其在跨境业务场景中&#xff0c;传统识别方式严重影响效率与准确性。护照阅读器搭载的 OCR 技术成为破局关键。它能精准提取国外护照、驾照等证件上的多语种文字…

Linux部署Python服务

1、创建项目目录与虚拟环境#确保安装 Python 和 python3-venv 工具 sudo apt update sudo apt install python3 python3-pip python3-venvmkdir myproject cd myproject python3 -m venv venv # 创建虚拟环境#Linux source venv/bin/activate # 激活虚拟环境#Windowds venv\S…

【Python办公】使用Python和Tkinter构建Excel数据导入MySQL工具(GUI版)

目录 专栏导读前言项目概述技术栈环境准备核心代码实现1. 导入必要的库2. 主应用类设计3. 用户界面设计数据库配置区域数据库选择区域4. 数据库连接功能测试连接获取数据库列表5. 数据导入功能关键技术点解析1. SQLAlchemy 2.x 兼容性2. MySQL 8.0 认证问题3. 避免启动时连接错…

华为OD机试_2025 B卷_猜数字(Python,100分)(附详细解题思路)

题目描述 一个人设定一组四码的数字作为谜底&#xff0c;另一方猜。 每猜一个数&#xff0c;出数者就要根据这个数字给出提示&#xff0c;提示以XAYB形式呈现&#xff0c;直到猜中位置。 其中X表示位置正确的数的个数&#xff08;数字正确且位置正确&#xff09;&#xff0c;而…

【网络安全】理解安全事件的“三分法”流程:应对警报的第一道防线

1. 简介 在网络安全领域&#xff0c;每天都会产生大量安全警报。作为一名安全分析师&#xff0c;识别、评估并优先处理这些警报的能力至关重要。三分法&#xff08;Triage&#xff09; 是确保安全团队高效响应安全事件的核心流程&#xff0c;它能够帮助我们合理分配资源、集中精…

AI大模型计数能力的深度剖析:从理论缺陷到技术改进

AI大模型计数能力的深度剖析&#xff1a;从理论缺陷到技术改进 AI大模型在计数任务上表现出明显的局限性&#xff0c;这不仅反映了模型架构的核心缺陷&#xff0c;也揭示了当前深度学习技术在处理结构化信息时的本质挑战。通过对文本计数、图像计数以及相关技术改进方向的全面分…

[C语言初阶]结构体初阶

目录一、结构体的声明二、结构体的定义和初始化三、结构体成员访问四、结构体传参五、函数调用的参数压栈&#xff08;了解&#xff09;在C语言中&#xff0c;我们知道数组是一组相同类型元素的集合&#xff0c;而结构体则更为灵活&#xff0c;它允许我们将不同类型的数据组合在…

LVS(Linux Virtual Server)集群技术详解

一.集群和分布式: 集群&#xff1a;同一个业务系统&#xff0c;部署在多台服务器上&#xff0c;集群中&#xff0c;每一台服务器实现的功能没有差别&#xff0c;数据和代码都是一样的 分布式&#xff1a;一个业务被拆成多个子业务&#xff0c;或者本身就是不同的业务&#…

leetcode_27 移除元素

1. 题意 给定一个数组&#xff0c;把不等于val的元素全部移动到数组的前面来。 不需要考虑值为val里的元素。 2. 题解 2.1 同向双指针 我们利用双指针&#xff0c;慢指针指向下一个插入的位置。而快指针不断向前找到首个不为val的值&#xff0c;找到后将快指针位置值赋给慢…

Linux-Ubuntu下的git安装与配置

一、安装git1.打开终端&#xff0c;运行以下命令&#xff08;需要联网&#xff09;sudo apt-get update sudo apt-get install git2.验证安装安装完成之后&#xff0c;通过运行以下命令验证git是否已经正确安装&#xff1a;git --version二、配置git2.1.配置用户名及邮箱地址在…

2D和3D激光slam的点云去运动畸变

在使用激光雷达设备采集点云的时候&#xff0c;我们都知道&#xff0c;激光雷达是边运动边采集的&#xff0c;每一个点云采集时的激光雷达的中心和姿态都是不一样的&#xff0c;如果不加以矫正&#xff0c;那么这一帧数据就会出现问题&#xff0c;比如采集一个平面的结构的时候…

Java 热门面试题 200 道(Markdown表格版)【简化版】

Java 热门面试题 200 道(Markdown表格版)【简化版】 Java与数据库核心面试题摘要 本文精选200道Java与数据库高频面试题,重点涵盖: Java集合: HashMap原理(数组+链表/红黑树)、ConcurrentHashMap分段锁优化、红黑树改进目的(解决哈希冲突性能问题) MySQL索引: 最左前…

OpenCV探索之旅:多尺度视觉与形状的灵魂--图像金字塔与轮廓分析

在我们学会用Canny算法勾勒处世界的轮廓之后&#xff0c;一个更深层次的问题摆在了面前&#xff1a;这些由像素组成的线条&#xff0c;如何才能被赋予“生命”&#xff0c;成为我们能够理解和分析的“形状”&#xff1f;如果一个物体在图像中时大时小&#xff0c;我们又该如何稳…

Redis作缓存时存在的问题及其解决方案

Redis最常用的一个场景就是作为缓存&#xff0c;本文主要探讨Redis作为缓存&#xff0c;在实践中可能会有哪些问题&#xff1f;比如一致性, 穿击, 穿透, 雪崩, 污染等。 为什么要理解Redis缓存问题 在高并发的业务场景下&#xff0c;数据库大多数情况都是用户并发访问最薄弱的…

day17 力扣654.最大二叉树 力扣617.合并二叉树 力扣700.二叉搜索树中的搜索 力扣98.验证二叉搜索树

最大二叉树给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建:创建一个根节点&#xff0c;其值为 nums 中的最大值。递归地在最大值 左边 的 子数组前缀上 构建左子树。递归地在最大值 右边 的 子数组后缀上 构建右子树。返回 nums 构建的 最大…