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

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://catchpenny.hfstrb.cn
http://caraway.hfstrb.cn
http://allopolyploidy.hfstrb.cn
http://antares.hfstrb.cn
http://casefy.hfstrb.cn
http://champertor.hfstrb.cn
http://barye.hfstrb.cn
http://cantilation.hfstrb.cn
http://aleatorism.hfstrb.cn
http://biophysics.hfstrb.cn
http://blackhead.hfstrb.cn
http://bisync.hfstrb.cn
http://balneary.hfstrb.cn
http://affectivity.hfstrb.cn
http://businesswoman.hfstrb.cn
http://automatically.hfstrb.cn
http://bhakti.hfstrb.cn
http://bewitchment.hfstrb.cn
http://antithrombotic.hfstrb.cn
http://archimedean.hfstrb.cn
http://chenopod.hfstrb.cn
http://apprehension.hfstrb.cn
http://caveat.hfstrb.cn
http://blackguardly.hfstrb.cn
http://argon.hfstrb.cn
http://chamberlain.hfstrb.cn
http://anthomaniac.hfstrb.cn
http://achromatopsy.hfstrb.cn
http://anadyr.hfstrb.cn
http://bunned.hfstrb.cn
http://www.dtcms.com/a/281761.html

相关文章:

  • 学习C++、QT---26(QT中实现记事本项目实现文件路径的提示、C++类模板、记事本的行高亮的操作的讲解)
  • 面向对象与面向过程、函数式编程
  • C++回顾 Day8
  • 【时时三省】(C语言基础)通过指针引用多维数组
  • 【09】MFC入门到精通——MFC 属性页对话框的 CPropertyPage类 和 CPropertySheet 类
  • burpsuite使用中遇到的一些问题(bp启动后浏览器无法连接)/如何导入证书
  • css实现烧香效果
  • 20.如何在 Python 字典中找到最小值或最大值的键?
  • 【卡尔曼滤波第六期】集合变换卡尔曼滤波 ETKF
  • 【Linux庖丁解牛】— 保存信号!
  • HTML网页结构(基础)
  • 【linux V0.11】init/main.c
  • 函数指针与指针函数练习讲解
  • 9、线程理论1
  • HostVDS 云服务器测评:平价入门、流媒体解锁全美、表现稳定
  • 暑假Python基础整理 --异常处理及程序调试
  • Redis 中的持久化机制:RDB 与 AOF
  • Java之Stream其二
  • 第二章 OB 存储引擎高级技术
  • 数学金融与金融工程:学科差异与选择指南
  • 【AI News | 20250714】每日AI进展
  • 为 Git branch 命令添加描述功能
  • 将 Vue 3 + Vite + TS 项目打包为 .exe 文件
  • 711SJBH构建制造业信息化人才培训体系的对策-开题报告
  • 21-C#的委托简单使用-1
  • Datawhale 25年7月组队学习coze-ai-assistant Task1学习笔记:动手实践第一个AI Agent—英伦生活口语陪练精灵
  • yolov5、yolov8、yolov11、yolov12如何训练及轻量化部署-netron-onnx
  • echarts折线图的 线条的样式怎么控制
  • Python os模块完全指南:从入门到实战
  • python编程实现GUI界面的排序与查找算法动态模拟演示程序