Vue 指令

Vue根据不同的指令,针对标签实现不同的功能

指令:带有v-前缀的特殊的标签属性

<!-- Vue指令-->
<div v-html="str"></div><!-- 普通标签属性 -->
<div class="box"></div>

目录

v-html

v-show

v-if

v-else和v-else-if

v-on

事件处理

监听事件

事件处理方法

内联处理器中的方法

内联处理器中访问Dom原生事件

 事件修饰符

v-bind

v-for

key

v-model


v-html

作用:设置元素的innerHTML

语法:v-html="表达式"

尝试将一个链接标签 <a> 直接作为 Vue 数据对象的值来渲染,失败了

错误分析:双大括号会将数据解释为普通文本,而非 HTML 代码。

为了输出真正的 HTML,你需要使用v-html :

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>004Vue指令v-html</title><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
</head><body><div id="app"><div v-html="msg"></div></div><script>const vm = new Vue({el: '#app',data: {msg:'<a href="https://v2.cn.vuejs.org/v2/guide/">Vue2 API</a>'}})</script>
</body></html>

v-show

作用:控制元素显示、隐藏

语法:v-show="表达式"   表达式值为true则显示,为false则隐藏

底层原理:切换css的display:none 来控制显示隐藏,元素始终保留在Dom中

应用场景:频繁切换显示隐藏的场景

v-if

作用:控制元素显示、隐藏 

语法:v-if="表达式"   表达式值为true则显示,为false则隐藏  

底层原理:根据判断条件控制元素的创建移除(条件渲染)

应用场景:或显示,或隐藏,不频繁切换的场景

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>005Vue指令v-show和v-if</title><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
</head><body><div id="app"><h1 v-show="flag">Hello v-show!</h1><h1 v-if="flag">Hello v-if!</h1></div><script>const vm = new Vue({el: '#app',data: {flag: false}})</script>
</body></html>

v-else和v-else-if

作用:辅助v-if进行判断渲染

语法:v-else="表达式"   v-else-if="表达式"

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>006Vue指令v-else和v-else-if</title><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
</head><body><div id="app"><p v-if="gender===0">性别:男</p><p v-else>性别:女</p><p v-if="score>=90">等级:A</p><p v-else-if="score>=80">等级:B</p><p v-else-if="score>=70">等级:C</p><p v-else-if="score>=60">等级:D</p><p v-else>等级:E</p></div><script>const vm = new Vue({el: '#app',data: {gender: 1,score: 95}})</script>
</body></html>

v-on

作用:注册事件 = 添加监听 + 提供处理逻辑

语法:

  1. v-on:事件名="内联语句"
  2. v-on:事件名="methods中的函数名"

缩写:@事件名

事件处理

监听事件

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>007Vue指令v-on监听事件</title><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
</head><body><div id="app"><button v-on:click="count--">-</button><span>{{count}}</span><button @click="count++">+</button><hr><button @click="count1-=2">-2</button><span>{{count1}}</span><button @click="count1-=2">+2</button></div><script>const vm = new Vue({el: '#app',data: {count: 100,count1: 200}})</script>
</body></html>

 

事件处理方法

许多事件处理逻辑会更为复杂,所以直接把 JavaScript 代码写在v-on 指令中是不可行的。因此 v-on 还可以接收一个需要调用的方法名称。

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>008Vue指令v-on事件处理方法</title><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
</head><body><div id="app"><!-- `greet` 是在下面定义的方法名 --><button v-on:click="greet">Greet</button></div><script>const vm = new Vue({el: '#app',data: {name: 'Vue2'},methods: {greet: function (event) {//`this` 在方法里指向当前 Vue 实例alert('Hello ' + this.name + '!')//`event` 是原生 DOM 事件if (event) {alert(event.target.tagName)}}}})</script>
</body></html>

内联处理器中的方法

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>009Vue指令v-on内联处理器中的方法</title><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
</head><body><div id="app"><button v-on:click="say('hi')">Say hi</button><button v-on:click="say('what')">Say what</button></div><script>const vm = new Vue({el: '#app',methods: {say: function (message) {alert(message)}}})</script>
</body></html>

内联处理器中访问Dom原生事件
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>010Vue指令v-on内联处理器中访问原始Dom事件</title><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
</head><body><div id="app"><button v-on:click="warn('Form cannot be submitted yet.', $event)">Submit</button></div><script>const vm = new Vue({el: '#app',methods: {warn: function (message, event) {// 现在我们可以访问原生事件对象if (event) {event.preventDefault()}alert(message)}}})</script>
</body></html>

 事件修饰符

  • .stop 
  • .prevent
  • .capture
  • .self
  • .once
  • .passive
<!-- 阻止单击事件继续传播 -->
<a v-on:click.stop="doThis"></a><!-- 提交事件不再重载页面 -->
<form v-on:submit.prevent="onSubmit"></form><!-- 修饰符可以串联 -->
<a v-on:click.stop.prevent="doThat"></a><!-- 只有修饰符 -->
<form v-on:submit.prevent></form><!-- 添加事件监听器时使用事件捕获模式 -->
<!-- 即内部元素触发的事件先在此处理,然后才交由内部元素进行处理 -->
<div v-on:click.capture="doThis">...</div><!-- 只当在 event.target 是当前元素自身时触发处理函数 -->
<!-- 即事件不是从内部元素触发的 -->
<div v-on:click.self="doThat">...</div>

v-bind

作用:动态的设置html的标签属性

语法:v-bind:属性名="表达式"

缩写是 “:”

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>012Vue指令v-bind</title><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
</head><body><div id="app"><img v-bind:src="imgUrl" v-bind:title="msg" alt=""><img :src="imgUrl" :title="msg" alt=""></div><script>const vm = new Vue({el: '#app',data: {imgUrl: 'https://v2.cn.vuejs.org/images/logo.svg',msg: 'Vue'}})</script>
</body></html>

v-for

作用:基于数据循环,多次渲染整个元素

遍历数组语法:v-for="(item, index) in 数组"     

item为数组中的项,index为数组下标

省略index: v-for="item in 数组"

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>014Vue指令v-for</title><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
</head><body><div id="app"><h3>前端学习</h3><ul><li v-for="(item,index) in list">{{item}}-{{index}}</li></ul><ul><li v-for="item in list">{{item}}</li></ul></div><script>const vm = new Vue({el: '#app',data: {list: ['HTML', 'CSS', 'JavaScript', 'Vue']}})</script>
</body></html>

key

作用:给元素添加唯一标识,便于Vue进行列表项的正确排序使用

注意点:

  1. key的值只能是字符串或数字类型
  2. key的值必须具有唯一性
  3. 推荐使用id作为key(唯一),不推荐使用index作为key(会变化,不对应)

语法:  :key="唯一值"  

v-model

作用:给表单元素使用,双向数据绑定,可以快速获取或设置表单元素内容

  1. 数据变化,视图自动更新
  2. 视图变化,数据自动更新

语法:v-model='变量'

 

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>016Vue指令v-model</title><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
</head><body><div id="app">账户:<input type="text" v-model="username"><br><br>密码:<input type="password" v-model="password"><br><br><button @click="login">登录</button><button @click="reset">重置</button></div><script>const vm = new Vue({el: '#app',data: {username: '',password: ''},methods: {login() {console.log(this.username, this.password)},reset() {this.username = ''this.password = ''}}})</script>
</body></html>

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

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

相关文章

反爬虫之代理IP封禁-协采云IP池

反爬虫之代理IP封禁-协采云IP池 1、目标网址2、IP封禁4033、协采云IP池 1、目标网址 aHR0cDovL3d3dy5jY2dwLXRpYW5qaW4uZ292LmNuLw 2、IP封禁403 这个网站对IP的要求很高&#xff0c;短时间请求十几次就会遭关进小黑屋。如下图&#xff1a; 明显是网站进行了反爬处理&…

使用剧本批量、自动管理逻辑卷设备实战

目录 1、目的 2、思考&#xff1a;这个时候使用ansible剧本比shell脚本的优势&#xff1a; 3、实战部署 3.1 让设备支持逻辑卷技术 3.2 使用lvol模块创建逻辑卷设备 3.3 使用filesystem模块来完成设备的格式化 3.4 最终剧本 3.5 执行剧本测试 3.6 查看受管主机的逻辑卷…

R语言 并行计算makeCluster报错

问题&#xff1a;使用parallel包进行并行计算&#xff0c; cl <- makeCluster(detectCores()) 出现以下问题&#xff1a; 解决方式&#xff1a;用makeClusterPSOCK命令代替即可 library("future") cl <- makeClusterPSOCK(124, revtunnel TRUE, outfile &…

【JAVA基础篇教学】第十二篇:Java中多线程编程

博主打算从0-1讲解下java基础教学&#xff0c;今天教学第十二篇&#xff1a;Java中多线程编程。 多线程编程是利用多个线程同时执行任务来提高程序的效率和性能。在 Java 中&#xff0c;多线程编程可以通过继承 Thread 类或实现 Runnable 接口来实现。下面是一个简单的多线程…

如何用个人电脑搭建一台本地服务器,并部署项目到服务器详细教程

服务器是一种高性能计算机&#xff0c;作为网络的节点&#xff0c;它存储、处理网络上80%的数据、信息&#xff0c;因此也被称为网络的灵魂。与普通计算机相比&#xff0c;服务器具有高速CPU运算能力、长时间可靠运行、强大I/O外部数据吞吐能力以及更好的扩展性。 服务器的主要…

(最新)华为 2024 届实习招聘-硬件通⽤/单板开发——第十一套和十二套

&#xff08;最新&#xff09;华为 2024 届实习招聘-硬件通⽤/单板开发——第十一套和十二套 部分题目分享&#xff0c;完整版带答案(有答案和解析&#xff0c;答案非官方&#xff0c;未仔细校正&#xff0c;仅供参考&#xff09;&#xff08;共十套&#xff09;获取&#xff…

汽车抗疲劳驾驶测试铸铁试验底座技术要求有哪些

铸铁平台试验台底座的主要技术参数要求 1、 试验台底座设计制造符合JB/T794-1999《铸铁平板》标准。 2、 试验铁底板及所有附件的计量单位全部采用 单位&#xff08;SI&#xff09;标准。 3、铸铁平台平板材质&#xff1a;用细密的灰口铸铁HT250或HT200&#xff0c;强度符…

Windows电脑使用Everything+cpolar搭建在线资料库并实现无公网IP管理文件

文章目录 推荐前言1.软件安装完成后&#xff0c;打开Everything2.登录cpolar官网 设置空白数据隧道3.将空白数据隧道与本地Everything软件结合起来总结 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家…

草柴返利APP如何查询领取天猫超市优惠券拿天猫超市购物返利?

草柴返利APP是一款购物省钱工具。通过草柴APP可查询到淘宝、天猫、京东隐藏的大额优惠券及购物返利。今天分享&#xff0c;如何使用草柴返利APP查询领取天猫超市商品的优惠券拿天猫超市购物返利。购物前先领券&#xff0c;确认收货后再拿返利&#xff1b; 草柴返利APP如何查询领…

Antd:在文本框中展示格式化JSON

要想将对象转换为格式化 JSON 展示在文本框中&#xff0c;需要用到 JSON.stringify JSON.stringify 方法接受三个参数&#xff1a; value&#xff1a;必需&#xff0c;一个 JavaScript 值&#xff08;通常为对象或数组&#xff09;要转换为 JSON 字符串。replacer&#xff1a…

神经网络压缩图像

简介 典型的压缩管道由四个组件组成&#xff1a; 编码&#xff1a;输入图像 x x x通过编码器函数 ε \varepsilon ε&#xff0c;将其转换为潜在表示 z z z。 量化&#xff1a;截断 z z z以丢弃一些不重要的信息 熵编码&#xff1a;使用某种形式的熵编码&#xff08;例如&…

C语言中的数据结构- -链表(1)

前言 前几节我们学习了C语言中的数据结构--顺序表&#xff0c;该数据结构类型相较于普通的数组而言有很多的优势&#xff0c;但是它还是在一定层面上存在着一些缺陷&#xff0c;可以归纳为以下三点&#xff1a; 1. 中间/头部的插⼊删除&#xff0c;时间复杂度为O(N)【数组的遍…

vue3+高德地图(或echarts)+turfjs实现等压线,色斑图(用于显示气象,环境等地图场景)

首先是turf.js(英文官网),也有中文网不过也就目录翻译了一下. 高德官网自行获得key echarts官网 使用turf的isobands api实现. 数据: 需要准备geojson格式经纬度信息业务值(比如温度,高度,光照只要是number值什么数据都可以) 国内各地区geojson数据点这里获得 参考的是这位大佬…

Python GUI开发模块之ttkbootstrap使用详解

概要 在Python的GUI开发中,使用Tkinter是一种常见的选择。 而ttkbootstrap模块则是在Tkinter的基础上提供了更加现代化和美观的界面设计风格,使得开发者可以快速构建出各种吸引人的GUI应用程序。 本文将对ttkbootstrap模块进行深入分析,并结合多种场景下的Python代码案例…

关于伴行天使车载监护器的技术路线

为了判断分析并反馈孩童是否昏睡状态&#xff0c;以预防因分心后排而导致的交通事故&#xff0c;本团队根据基于回归树对齐算法中获取的数据&#xff0c;建立了疲劳度评分机制。 本评分机制采用人脸关键点智能标注模型检测人脸&#xff0c;通过人脸识别68特征点检测、分别获取…

端口映射软件可以做什么? 快解析如何设置端口映射?

说到端口映射&#xff0c;首先说说nat。简单地说&#xff0c;nat就是在局域网内部网络中使用内部地址&#xff0c;而当内部节点要与外部网络进行通讯时&#xff0c;就在网关处&#xff0c;将内部地址替换成公用地址&#xff0c;从而在外部公网&#xff08;internet&#xff09;…

汽车车灯用肖特基二极管,选什么型号好?

肖特基二极管种类繁多&#xff0c;有低压降肖特基二极管、通用型肖特基二极管、快速恢复型肖特基二极管、高功率肖特基二极管、汽车级肖特基二极管等等&#xff0c;其中低压降肖特基二极管和汽车级肖特基二极管是二极管厂家东沃电子的核心优势产品。关于东沃电子推出的低压降肖…

WP免费主题下载

免费wordpress模板下载 高端大气上档次的免费wordpress主题&#xff0c;首页大图全屏显示经典风格的wordpress主题。 https://www.wpniu.com/themes/289.html 免费WP主题 蓝色简洁实用的wordpress免费主题模板&#xff0c;免费主题资源分享给大家。 https://www.wpniu.com/…

【计算机毕业设计】游戏售卖网站——后附源码

&#x1f389;**欢迎来到琛哥的技术世界&#xff01;**&#x1f389; &#x1f4d8; 博主小档案&#xff1a; 琛哥&#xff0c;一名来自世界500强的资深程序猿&#xff0c;毕业于国内知名985高校。 &#x1f527; 技术专长&#xff1a; 琛哥在深度学习任务中展现出卓越的能力&a…

基于JSP+Mysql+HTml+Css仓库出入库管理系统设计与实现

博主介绍&#xff1a;黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者&#xff0c;CSDN博客专家&#xff0c;在线教育专家&#xff0c;CSDN钻石讲师&#xff1b;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程&#xff…