【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>

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

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

相关文章

集成金蝶云星空数据至MySQL的完整案例解析

金蝶云星空数据集成到MySQL的技术案例分享 在企业信息化系统中&#xff0c;数据的高效流动和准确同步是确保业务连续性和决策支持的重要环节。本文将聚焦于一个具体的系统对接集成案例——金蝶云星空的数据集成到MySQL&#xff0c;方案名称为“2金蝶物料同步到商城中间表”。 …

为什么transformer的时间复杂度是N的平方,具体是里面的哪一个计算流程最占用时间

Transformer的时间复杂度为 O(N2)&#xff0c;其中 NN 是输入序列的长度。这一复杂度主要来源于自注意力机制&#xff08;self-attention mechanism&#xff09;的计算过程。 在Transformer模型中&#xff0c;自注意力机制的核心步骤是计算查询&#xff08;Query&#xff09;、…

如何在Linux上安装Canal同步工具

1. 下载安装包 所用到的安装包 canal.admin-1.1.4.tar.gz 链接&#xff1a;https://pan.baidu.com/s/1B1LxZUZsKVaHvoSx6VV3sA 提取码&#xff1a;v7ta canal.deployer-1.1.4.tar.gz 链接&#xff1a;https://pan.baidu.com/s/13RSqPinzgaaYQUyo9D8ZCQ 提取码&#xff1a;…

操作系统大会2024 | 麒麟信安根植openEuler社区,持续技术创新 共拓新应用 探索新机遇

[中国&#xff0c;北京&#xff0c;2024年11月15日] 以“以智能&#xff0c;致世界”为主题的操作系统大会2024在北京中关村国际创新中心召开&#xff0c;本次大会由openEuler社区和全球计算联盟主办&#xff0c;旨在汇聚全球产业界力量&#xff0c;推动基础软件根技术持续创新…

Wallpaper壁纸制作学习记录03

添加用户属性 Wallpaper Engine 允许用户在用户属性的帮助下进一步自定义您的壁纸。用户属性允许您为用户提供进一步调整和自定义壁纸各个方面的选项&#xff0c;包括完全隐藏壁纸中的对象。 创建可见性属性 每个元素在右上角都有一个 visibility 属性&#xff08;由眼睛图标…

杰理-gpadc

gpadc API是系统提供的用于adc采集的接口 void adc_init(); //adc功能初始化&#xff0c;一般在板级配置.c文件已经默认调用&#xff0c;用户无需再重复调用。 示例&#xff1a; static void WANG_printf(void *_arg) {//adc_init(); //板级配置中默认会调用&#xff0c;实际…

如何使用Jmeter做性能测试?

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 今天我们来说说jmeter如何进行性能测试&#xff0c;我们都知道jmeter工具除了可以进行接口功能测试外&#xff0c;还可以进行性能测试。当项目趋于稳定&#xf…

【CSP CCF记录】201903-1第16次认证 小中大

题目 样例1输入 3 -1 2 4 样例1输出 4 2 -1 样例1解释 4 为最大值&#xff0c;2 为中位数&#xff0c;−1 为最小值。 样例2输入 4 -2 -1 3 4 样例2输出 4 1 -2 样例2解释 4 为最大值&#xff0c;(−13)21为中位数&#xff0c;−2为最小值。 思路 本题两个注意点&#xff0…

windows下,用CMake编译qt项目,出现错误By not providing “FindQt5.cmake“...

开发环境&#xff1a;windows10 qt5.14&#xff0c; 编译器msvc2017x64&#xff0c;CMake3.30&#xff1b; 现象&#xff1a; CMakeList文件里&#xff0c;如有find_package(Qt5 COMPONENTS Widgets REQUIRED) target_link_libraries(dis_lib PRIVATE Qt5::Widgets) 用CMak…

自由学习记录(23)

Lua的学习 table.concat(tb,";") 如果表里带表&#xff0c;则不能拼接&#xff0c;表里带nil也不能&#xff0c;都会报错 true和false也不可以&#xff0c;数字和字符串可以 if要和一个end配对&#xff0c;所以 if a>b then return true end end 两个end …

JavaWeb-表格标签-06

表格标签 table code: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>表格标签</title><…

【Stable Diffusion】 超大尺寸绘制、分区控制,详解Tiled Diffusion VAE插件功能

今天&#xff0c;我们将向您介绍一款令人兴奋的AI工具——Tiled Diffusion & VAE插件。这是一款基于Stable Diffusion技术的创新应用&#xff0c;旨在为您提供超大尺寸绘制和分区控制的便捷体验。无论您是AI绘画的新手还是专业人士&#xff0c;这个工具都能为您带来极大的便…

【大数据分析机器学习】分布式机器学习

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈智能大数据分析 ⌋ ⌋ ⌋ 智能大数据分析是指利用先进的技术和算法对大规模数据进行深入分析和挖掘&#xff0c;以提取有价值的信息和洞察。它结合了大数据技术、人工智能&#xff08;AI&#xff09;、机器学习&#xff08;ML&a…

染色质重塑与心衰中的细胞间通讯机制:解读一篇Nature力作

染色质重塑与心衰中的细胞间通讯机制&#xff1a;解读一篇Nature力作 一、文献的主要行文思路与观点 在这篇发表在 Nature 的文章中&#xff0c;作者聚焦于心脏衰竭中的慢性炎症与纤维化问题&#xff0c;试图揭示免疫细胞与成纤维细胞之间的通讯机制。研究围绕以下几个核心问题…

WordPress添加类似说说、微博的时间轴微语页面

这个版本的WordPress可以直接使用&#xff0c;CSS样式可以完美兼容。效果如图 使用方法&#xff1a; 一、后台配置 新建微语功能 将下面的代码复制粘贴到主题的functions.php函数文件中&#xff0c;为WordPress添加微语功能。添加完成后&#xff0c;可以在WordPress后台菜单…

解决IDEA报包不存在,但实际存在的问题

前言 最近在把一个亿老项目交割给同事&#xff0c;同事在导入项目运行时遇到IDEA报包不存在&#xff0c;但实际存在的问题&#xff0c;最终通过以下方式解决 现象 在IDEA里启动运行项目&#xff0c;报某个类有问题&#xff0c;引入的包不存在。 点击这个引入的包&#xff0c;可…

云原生之k8s服务管理

文章目录 服务管理Service服务原理ClusterIP服务 对外发布应用服务类型NodePort服务Ingress安装配置Ingress规则 Dashboard概述 认证和授权ServiceAccount用户概述创建ServiceAccount 权限管理角色与授权 服务管理 Service 服务原理 容器化带来的问题 自动调度&#xff1a;…

RocketMQ: 集群部署注意事项

概述 RocketMQ 是一款分布式、队列模型的消息中间件&#xff0c;具有以下特点&#xff1a; 能够保证严格的消息顺序提供丰富的消息拉取模式高效的订阅者水平扩展能力实时的消息订阅机制亿级消息堆积能力 选用理由&#xff1a; 强调集群无单点&#xff0c;可扩展&#xff0c;任…

【Unity How】Unity中如何实现物体的匀速往返移动

直接上代码 using UnityEngine;public class CubeBouncePingPong : MonoBehaviour {[Header("移动参数")][Tooltip("移动速度")]public float moveSpeed 2f; // 控制移动的速度[Tooltip("最大移动距离")]public float maxDistance 5f; // 最大…

ECharts柱状图-带圆角的堆积柱状图,附视频讲解与代码下载

引言&#xff1a; 在数据可视化的世界里&#xff0c;ECharts凭借其丰富的图表类型和强大的配置能力&#xff0c;成为了众多开发者的首选。今天&#xff0c;我将带大家一起实现一个柱状图图表&#xff0c;通过该图表我们可以直观地展示和分析数据。此外&#xff0c;我还将提供…