2、事件修饰符、双向绑定、style样式使用、v-for循环遍历、v-if 和 v-show

一、事件修饰符

1、.stop 阻止冒泡事件

  • 给谁加了阻止冒泡事件,谁下面的盒子就不会执行了
<div id="app"><div class="parent" @click="log3"><div class="child" @click="log2"><button @click.stop="log1">我是按钮</button> // 输出1111</div></div>
</div>
<script>let vm = new Vue({el: "#app",data: {},methods: {log1() { console.log(11111111111); },log2() { console.log(222222222222); },log3() { console.log(3333333333); }},})
</script>

2、.capture 添加事件捕获

  • 给谁加捕获事件,谁先触发
<div id="app"><div class="parent" @click="log3"><div class="child" @click.capture="log2"> //先输出22222 然后 1111 33333<button @click="log1">我是按钮</button> </div></div></div>

3 、.self 点击他的时候触发

  • 只有在点击的时候才可以触发
<div id="app"><div class="parent" @click="log3">//点击2  触发222 333<div class="child" @click.self="log2"><button @click="log1">我是按钮</button>//点击1 触发 111 333</div></div>
</div>

4、.once只触发一次

<div id="app"><div id="one" @click="one"><!-- 给two盒子的点击事件添加.once修饰符 --><div id="two" @click.once="two"><div id="three" @click="three"></div></div></div>
</div>
<script>let vm = new Vue({el: "#app",data: {},methods: {one() { console.log('单击one盒子了'); },two() { console.log('单击two盒子了'); },three() { console.log('单击three盒子了'); }}})
</script>

5、.prevent 阻止默认事件

<div id="app"><!-- 给链接标签的点击事件添加.prevent修饰符 --><a href="#" @click.prevent="tap">点击链接</a>
</div>
<script>let vm = new Vue({el: "#app",data: {},methods: {tap() {console.log('阻止默认事件');}}})
</script>

二、v-model 数据双向绑定(表单控件)

  • 原理:通过数据劫持结合订阅模式的方式来实现的,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调来渲染视图。
  • 指令 v-model
<div id="app"><input type="text" v-model:value=first> + <input type="text" v-model:value=second> <button @click="add">=</button> <input type="text" v-model:value=result>
</div>
<script>let vm = new Vue({el: "#app",data: {first: '',second: '',result: ''},methods: {add() {// 获取到的input框的value值都是字符串类型this.result = Number(this.first) + Number(this.second)}}})
</script>

image-20240322183107537

三、样式的使用

    <style>.red { color: red; }.fs30 { font-size: 30px; }</style>

1、class(4钟)

数组

<body><div id="app"><div :class="[class1,class2]">字体30px、红色字</div><!-- 等价于 --><div class="red fs30">字体30px、红色字</div></div>
</body>
<script>let vm = new Vue({el: "#app",data: {class1: 'red',class2: 'fs30'},methods: {}})
</script>

三目表达式

<div id="app">
<!-- age=10 满足age<18 所以class=class1 --><div :class="age<18?class1:class2">未成年人</div>
<!-- 等价于 --><div :class="age<18?'red':'fs30'">未成年人</div>
</div>
<script>let vm = new Vue({el: "#app",data: {age: 10,class1: 'red',class2: 'fs30'},methods: {}})
</script>

对象

<div id="app"><div :class="{red:true}">显示红色字体</div><div :class="{'red':true}">显示红色字体</div><div :class="{'red':flag}">显示红色字体</div><div :class="{'red':'flag'}">显示红色字体</div>
</div>
<script>let vm = new Vue({el: "#app",data: {flag: true},methods: {}})
</script>

数组内置对象

<div id="app"><div :class="[{red:true},{fs30:flag}]">红色字体、字号30px</div><div :class="[{'red':flag},{fs30:'flag'}]">红色字体、字号30px</div>
</div>
<script>let vm = new Vue({el: "#app",data: {flag: true},methods: {}})
</script>

2、style(3钟)

对象

    <div id="app"><div :style=style1>红色字体</div><div :style=style2>字号30px、字体加粗</div></div>
<script>let vm = new Vue({el: "#app",data: {style1: 'color:red',style2: {fontSize: "30px","font-weight": 700}},methods: {}})
</script>

数组内置对象

    <div id="app"><div :style='[style1,style2]'>红色字体、字号30px、字体加粗</div></div>
<script>let vm = new Vue({el: "#app",data: {style1: {'color': 'red'},style2: {fontSize: "30px","font-weight": 700}},methods: {}})
</script>

函数返回值

<body><div id="app"><div :style='getStyle()'>字号30px、字体红色</div></div>
</body>
<script>let vm = new Vue({el: "#app",data: {},methods: {getStyle() {return {color: 'red',fontSize: "30px",}}}})
</script>

3、v-for

遍历数组

<body><div id="app"><!-- item:数组的每一项   index:数组的索引(索引从0开始) --><div v-for="(item,index) in list" :key="item">{{item}}</div></div>
</body>
<script>let vm = new Vue({el: "#app",data: {list: [ 1, 2, 3, 4 ]},methods: {}})
</script>

遍历对象

<body><div id="app"><!-- value:值   key:键   index:索引 --><div v-for="(value,key,index) in obj" :key="value">{{value}}</div></div>
</body>
<script>let vm = new Vue({el: "#app",data: {obj: {name1: '小明',name2: '小红',name3: '小花',name4: '小亮',}},methods: {}})
</script>

遍历数字

<div v-for="num in 10">{{num}}</div>

  • key
    • 必须是唯一值
    • 必须是数字或者字符串
    • 作用:提高重排效率,就地复用

4、v-if 和 v-show

  • 相同点:都可以进行元素的隐藏
  • 不同点:
    • v-if:通过删除DOM元素进行隐藏,v-show通过display:none;进行隐藏
  • 应用场景:
    • v-show:用于少次的切换,v-show应用于频繁的切换
<div id="app"><div v-if="isShow">v-if,变量为布尔值,为true才渲染Dom</div><div v-show="isShow">v-show,变量为布尔值,为true才渲染Dom</div><div v-if="false">v-if通过删除dom元素来实现</div><div v-show="false">v-show是设置display:none来实现</div><!-- v-if可以和v-else-if、v-else 一起结合使用,但是中间不能加dom内容 --><!--   age=35,满足age<30 显示青年     --><div v-if="age<18"> 少年</div><div v-else-if="age<30"> 青年</div><div v-else-if="age<60"> 中年</div><div v-else> 老年</div>
</div>
<script>let vm = new Vue({el: "#app",data: {isShow: true,age: 35},methods: {}})
</script>

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

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

相关文章

AI:151-使用机器学习技术进行信用风险评估与管理

收录于专栏:精通AI实战千例专栏合集 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带关键代码,详细讲解供大家学习,希望可以帮到大家。正在不断更新中~ 一.机器学习在信用风险评估与管理中…

python蓝桥杯-算法训练 印章、拿金币、数字游戏

一、印章 问题描述 共有n种图案的印章&#xff0c;每种图案的出现概率相同。小A买了m张印章&#xff0c;求小A集齐n种印章的概率。 输入格式 一行两个正整数n和m 输出格式 一个实数P表示答案&#xff0c;保留4位小数。 样例输入 2 3 样例输出 0.7500 数据规模和约定 1≤…

pytest之yaml格式测试用例读写封装

pytest之yaml格式测试用例读写封装 pytest之parametrize&#xff08;&#xff09;实现数据驱动YAML格式测试用例读/写/清除/封装结构类型Maps类型数组类型 pytestparametrizeyamltest_api.pyget_token.yaml pytest之parametrize&#xff08;&#xff09;实现数据驱动 pytest.ma…

LeetCode_32_困难_最长有效括号

文章目录 1. 题目2. 思路及代码实现详解&#xff08;Java&#xff09;2.1 动态规划2.2 不需要额外空间的算法 1. 题目 给你一个只包含 ( 和 ) 的字符串&#xff0c;找出最长有效&#xff08;格式正确且连续&#xff09;括号 子串 的长度。 示例 1&#xff1a; 输入&#xff…

Oracle Data Guard常用命令

--查询数据库角色和保护模式 select database_role,switchover_status from v$database; --切换备库为主库&#xff08;切换后&#xff0c;主库为mount状态&#xff09; --TO PRIMARY alter database commit to switchover to primary; --SESSIONS ACTIVE alter database comm…

springcloud+nacos服务注册与发现

快速开始 | Spring Cloud Alibaba 参考官方快速开始教程写的&#xff0c;主要注意引用的包是否正确。 这里是用的2022.0.0.0-RC2版本的springCloud&#xff0c;所以需要安装jdk21&#xff0c;参考上一个文章自行安装。 nacos-config实现配置中心功能-CSDN博客 将nacos-conf…

Head First Design Patterns -模板方法模式

什么是模板方法模式 在一个方法中定义一个算法的骨架&#xff0c;而把一些步骤延迟到子类。模板方法使得子类可以在不改变算法结构的情况下&#xff0c;重新定义算法的某些步骤。 这些算法步骤中的一个或者多个被定义为抽象的&#xff0c;由子类实现。 类图 代码 书中用泡茶和…

C# 编程语言中访问修饰符(access modifiers)

C#访问修饰符 protected 访问修饰符&#xff1a;1. public 访问修饰符&#xff1a;2. private 访问修饰符&#xff1a;3. internal 访问修饰符&#xff1a;4. protected internal 访问修饰符&#xff1a; 在 C# 编程语言中&#xff0c;有多个访问修饰符&#xff08;access modi…

kotlin中使用myibatis-plus的lambdaQuery的问题

kotlin中使用myibatis-plus的lambdaQuery的问题 代码&#xff1a;lambdaQuery().eq(User::username, username).one()报错&#xff1a;org.apache.ibatis.reflection.ReflectionException: Error parsing property name register$lambda$0. Didnt start with is, get or set.解…

#Linux(Samba安装)

&#xff08;一&#xff09;发行版&#xff1a;Ubuntu16.04.7 &#xff08;二&#xff09;记录&#xff1a; &#xff08;1&#xff09;键入命令安装Samba sudo apt-get install samba &#xff08;2&#xff09;修改samba配置文件 //打开配置文件 sudo vi /etc/samba/smb.…

Java基础-常用类

文章目录 1.Math类2.System类1.exit代码 结果2.arraycopy参数解释代码结果 3.currentTimeMillens代码结果 3.大数处理方案基本介绍BigInteger类介绍代码结果 BigDecimal类介绍代码结果 4.日期类对于IDEA类图中的属性![image-20240101190844530](https://img-blog.csdnimg.cn/im…

HJ10 字符个数统计HJ11 数字颠倒HJ12 字符串反转

HJ10 字符个数统计 字符个数统计_牛客题霸_牛客网 题目分析 这个问题可以通过维护一个字符出现频率的数组来解决。考虑到 ASCII 码的范围是 0~127&#xff0c;我们可以创建一个长度为 128 的布尔数组&#xff08;或者使用位操作优化空间&#xff09;&#xff0c;用来标记某个…

深度学习,CRNN+CTC和Attention OCR你更青睐哪一种?

深度学习在OCR领域的应用已经取得了瞩目的成果&#xff0c;而选择合适的算法对于提升OCR的识别准确率至关重要。在众多算法中&#xff0c;CRNN和Attention OCR犹如两颗璀璨的明珠&#xff0c;备受瞩目。 CRNN&#xff0c;这位结合了卷积神经网络&#xff08;CNN&#xff09;和…

电子电器架构 —— 诊断数据DTC具体故障类型篇

电子电器架构 —— 诊断数据DTC具体故障类型篇 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师 (Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶,喝…

Spark Stage

Spark Stage 什么是Stage Spark中的一个Stage只不过是物理执行计划其中的一个步骤&#xff0c;它是物理执行计划的一个执行单元。一个Job会被拆分为多组Task&#xff0c;每组任务被称为一个Stage&#xff0c;可以简单理解为MapReduce里面的Map Stage&#xff0c; Reduce Stag…

Unity 中 苹果眼镜开发入口

1. 文档介绍了Unity对Apple新操作系统visionOS的支持。 2. Unity提供了完善的文档、模板和支持,帮助开发者快速为visionOS开发应用。 3. Unity的跨平台框架AR Foundation和XR Interaction Toolkit可以帮助现有移动和XR应用无缝迁移到visionOS。 4. 在visionOS上,可以利用Uni…

kafka(三)——librdkafka编译与使用(c++)

linux下编译 源码下载 git clone https://github.com/edenhill/librdkafka配置、编译和安装 # 进入目录 cd librdkafka/# 配置 ./configure# 编译 make# 安装 make install头文件和库目录 # 头文件 /usr/local/include/librdkafka rdkafkacpp.h rdkafka.h rdkafka_mock.h #…

LLM漫谈(五)| 从q star视角解密OpenAI 2027年实现AGI计划

最近&#xff0c;网上疯传OpenAI2027年关于AGI的计划。在本文&#xff0c;我们将针对部分细节以第一人称进行分享。​ 摘要&#xff1a;OpenAI于2022年8月开始训练一个125万亿参数的多模态模型。第一个阶段是Arrakis&#xff0c;也叫Q*&#xff0c;该模型于2023年12月完成训练&…

vue3+threejs新手从零开发卡牌游戏(十一):添加简单的手牌上场逻辑

首先优化之前的战域相关代码&#xff0c;主要是将战域分成两部分&#xff0c;上方是对方战域&#xff0c;下方是己方战域&#xff0c;然后修改了战域中格子的名称&#xff0c;方便后续不同手牌上场的逻辑区分&#xff1a; game/site/index.vue完整代码如下&#xff1a; <!…

【WEEK4】 【DAY4】AJAX第一部分【中文版】

【WEEK4】 【DAY4】AJAX第一部分【中文版】 2024.3.21 Thursday 目录 8.AJAX8.1.简介8.2.伪造ajax8.2.1.新建module&#xff1a;springmvc-06-ajax8.2.2.添加web支持&#xff0c;导入pom依赖8.2.2.1.修改web.xml8.2.2.2.新建jsp文件夹 8.2.3.新建applicationContext.xml8.2.4.…