Vue中对于指令的介绍

Vue指令

文章目录

  • Vue指令
    • 1、介绍
    • 2、指令介绍
      • 2.1、v-html
      • 2.2、v-show和v-if
      • 3.2、v-else 和 v-else-if
      • 3.3、v-on
      • 3.4、v-bind
      • 3.5、v-for
      • 3.6、v-for 中的key
      • 3.7、v-model
    • 3、指令修饰符
      • 3.1、 按键修饰符
      • 3.2、 监听v-model修饰符·
      • 3.3、 事件修饰符

1、介绍

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

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

2、指令介绍

官网指令介绍:https://v2.cn.vuejs.org/v2/api/#%E6%8C%87%E4%BB%A4

image-20230910120444455

2.1、v-html

我们使用常规的差值表达式是无法解析网页链接的,所以我们就需要“v-html”指令来实现。

v-html可以动态的设置innerHTML属性

<body><div id="app"><!-- {{msg}} --><div v-html="msg"></div></div><script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script><script>const app = new Vue({el: "#app",data: {msg:' <a href="https://www.baidu.com">百度</a>'}})</script>
</body>

2.2、v-show和v-if

  • v-show

    1. 作用:控制元素显示隐藏

    2. 语法:v-show = "表达式” 表达式值true显示,false隐藏

    3. 原理:切换display:none控制显示隐藏

    4. 场景:频繁切换显示隐藏的场景

  • v-if

    1. 作用:控制元素显示隐藏(条件渲染)

    2. 语法:v-if = “表达式” 表达式值true显示, false隐藏

    3. 原理:基于条件判断,是否创建或移除元素节点

    4. 场景:要么显示,要么隐藏,不频繁切换的场景

3.2、v-else 和 v-else-if

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

  2. 语法: v-elsev-else-if = “表达式”

  3. 注意:需要紧挨着v-if 一起使用

<body><div id="app"><p v-if="gender === 1">性别:男</p><p v-else>性别:女</p><hr><p v-if="score>=90">成绩评定A:奖励电脑一台</p><p v-else-if="score>=70">成绩评定B:奖励周末郊游</p><p v-else-if="score>=60">成绩评定c:奖励零食礼包</p><p v-else>成绩评定D:惩罚一周不能玩手机</p></div><script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script><script>const app = new Vue({el: "#app",data: {gender: 2,score: 80}})</script>>
</body>

3.3、v-on

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

  2. 语法:

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

可以使用’@‘来代替’v-on:‘

内联语句:

<body><div id="app"><button v-on:click="count--">-</button><span>{{count}}</span><button v-on:click="count++"> +</button><button @click="count++"> +</button></div><script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script><script>const app = new Vue({el: "#app",data: {count: 100},})</script>
</body>

method方式:

    <div id="app"><button v-on:click="count--">-</button><span>{{count}}</span><button v-on:click="count++"> +</button><button @click="fun">函数处理+</button></div><script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script><script>const app = new Vue({el: "#app",data: {count: 100},methods: {fun() {app.count++;this.count++;}}})</script>

在methods中访问data中的数据,需要用过app来引用,但是以防变量名的更改,所以可以通过使用this来指向当前的实例来获取data中的对象。

函数传参调用:

    <div id="app"><div class="box"><h3>小黑自动售货机</h3><button @click="buy(5)">可乐5元</button><button @click="buy(10)">咖啡10元</button></div><p>银行卡余额:{{ money }}元</p></div><script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script><script>const app = new Vue({el: "#app",data: {money: 100},methods: {buy(price) {this.money -= price;}}})</script>

3.4、v-bind

  1. 作用:动态的设置html的标签属性→src url title …

  2. 语法: v-bind:属性名=“表达式”

  3. “v-bind:“的简写:”:”

    <div id="app"><img v-bind:src="img" v-bind:title="msg"><img :src="img" :title="msg"></div><script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script><script>const app = new Vue({el: '#app',data: {img: 'https://gitee.com/mannor/resouces/raw/master/PicGo/image-20230807220043572.png',msg: '在linux中拉取代码'}})</script>

3.5、v-for

  1. 作用:基于数据循环,多次渲染整个元素→数组、对象、数字…

  2. 遍历数组语法:
    v-for = “(item, index) in 数组名”

item:代指的是数组的内容;index:是指当前遍历的数组的下标。甚至不使用index的时候index还可以省略。

 <div id="app"><h3>mannor水果店</h3><ul><li v-for="(item,index) in list ">{{list[index]}}</li></ul><ul><li v-for="item in list ">{{item}}</li></ul></div><script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script><script>const app = new Vue({el: "#app",data: {list: ["西瓜", "芒果", "香蕉", "鸭梨", "西红柿"]}})</script>

3.6、v-for 中的key

  • 语法:key属性=“唯一标识”

  • 作用:给列表项添加的唯一标识。便于Vue进行列表项的正确排序复用

    v-for的默认行为会尝试原地修改元素(就地复用:元素被更改了,但是填充元素的容器并没有被删除)。

  • 注意点:

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

3.7、v-model

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

    • 数据变化→视图自动更新
    • 视图变化→数据自动更新
  2. 语法:v-model = ‘变量’

 <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 src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script><script>const app = new Vue({el: '#app',data: {username: '',password: ''},methods: {login() {console.log(this.username, this.password);},reset() {this.username = '';this.password = '';}}})</script>

3、指令修饰符

通过".”指明一些指令后缀,不同后缀封装了不同的处理操作,其作用是简化代码

3.1、 按键修饰符

  • @keyup.enter→键盘回车
<body><div id="app"><input type="text" @keyup.enter="fun"> </input>></div><script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script><script>const app = new Vue({el: '#app',data: {},methods: {fun() {console.log("输入框以回车框的形式提交");}}});</script>
</body>

3.2、 监听v-model修饰符·

  • v-model.trim→去除首尾空格
  • v-model.number →将输入框中的数字字符转为数字
<body><div id="app">姓名:<input type="text" v-model.trim="text"></input>年龄:<input type="text" v-model.number="text"></input></div><script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script><script>const app = new Vue({el: '#app',data: {text: 0,},});</script>
</body>

3.3、 事件修饰符

  • @事件名.stop→阻止冒泡

  • @事件名.prevent →阻止默认行为(阻止链接的跳转)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.father {width: 200px;height: 200px;background-color: pink;margin-top: 20px;}.son {width: 100px;height: 100px;background-color: skyblue;}</style>
</head>
<body><div id="app"><h3>@事件名.stop → 阻止冒泡</h3><div @click="fatherFn" class="father"><div @click.stop="sonFn" class="son">儿子</div></div><h3>@事件名.prevent → 阻止默认行为</h3><a @click.prevent href="http://www.baidu.com">阻止默认行为</a></div><script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script><script>const app = new Vue({el: '#app',data: {username: '',age: '',},methods: {fatherFn() {alert('老父亲被点击了')},sonFn() {alert('儿子被点击了')}}})</script>
</body>
</html>

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

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

相关文章

龙迅LT86102UX HDMI一进二出,支持分辨率4K60HZ

龙迅LT86102UXE 1. 描述 龙迅LT86102UX HDMI2.0 分路器具有符合 HDMI2.0/1.4 规范的 1&#xff1a;2 分路器、最大 6Gbps 高速数据速率、自适应均衡 RX 输入和预强调的 TX 输出&#xff0c;支持长电缆应用&#xff0c;板载无 XTAL&#xff0c;可节省 BOM 成本。 LT86102UX HDM…

Vue 3 基础(二)基础 1

API 参考 1、创建一个 Vue 应用 1.1 应用实例 每个 Vue 应用都是通过 createApp 函数创建一个新的 应用实例&#xff1a; import { createApp } from vueconst app createApp({/* 根组件选项 */ })1.2 根组件 我们传入 createApp 的对象实际上是一个组件&#xff0c;每个…

哈希表的实现(哈希捅)

今天是哈希表的实现&#xff0c;哈希表也是一种数据结构&#xff0c;我个人认为还是比较简单的&#xff0c;先给大家看看我 的实现代码吧&#xff0c;如下&#xff1a; #pragma once #include <iostream> #include <set> #include <map> #include <vecto…

MySQL主从分离读写复制

在高负载的生产环境里&#xff0c;把数据库进行读写分离&#xff0c;能显著提高系统的性能。下面对MySQL的进行读写分离。 试验环境 A机&#xff1a;IP:192.168.0.1 mysql版本&#xff1a;mysql-5.6.4,主数据服务器&#xff08;只写操作&#xff09; B机&#xff1a;IP:192.…

网管实战⑼:配置华为S5720交换机

配置好汇聚交换机后&#xff0c;需要根据单位情况配置具体的接入交换机。 自从2019年12月底配置好交换机后&#xff0c;基本上都没有怎么操作交换机了。那时候使用的是H3C交换机&#xff0c;主要是H3C S7706、H3C S5120、H3C S5130、H3C S5500、H3C S3600等型号的交换机&#x…

Kafka3.0.0版本——消费者(自动提交 offset)

目录 一、自动提交offset的相关参数二、消费者&#xff08;自动提交 offset&#xff09;代码示例 一、自动提交offset的相关参数 官网文档 参数解释 参数描述enable.auto.commi默认值为 true&#xff0c;消费者会自动周期性地向服务器提交偏移量。auto.commit.interval.ms如果…

Ubuntu终端指令

目录 目录 一、基本指令 1.命令行提示符 2.切换用户 3.修改密码 4.查看当前目录下的文件 5.修改文件权限---chmod 6.cd 切换路径 7.touch 8.cat 9.echo 10.mkdir 11. rm/rmdir 二、在线下载软件 1.更新软件源 2.更新软件列表 3.下载软件 三、离线安装软件 1. …

车载软件架构——基础软件供应商开发工具链(一)

车载软件架构——基础软件供应商&开发工具链(一) 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无需有人关注你。你必须承认自己的价值,你不能站在他人的角度来反对自己…

Qt包含文件不存在问题解决 QNetworkAccessManager

这里用到了Qt的网络模块&#xff0c;在.pro中添加了 QT network 但是添加 #include <QNetworkAccessManager> 会报错说找不到&#xff0c;可以通过在项目上右键执行qmake后&#xff0c;直接#include <QNetworkAccessManager>就不会报错了&#xff1a;

MLC-LLM 部署RWKV World系列模型实战(3B模型Mac M2解码可达26tokens/s)

0x0. 前言 我的 ChatRWKV 学习笔记和使用指南 这篇文章是学习RWKV的第一步&#xff0c;然后学习了一下之后决定自己应该做一些什么。所以就在RWKV社区看到了这个将RWKV World系列模型通过MLC-LLM部署在各种硬件平台的需求&#xff0c;然后我就开始了解MLC-LLM的编译部署流程和…

搭建自己的OCR服务,第一步:选择合适的开源OCR项目

一、OCR是什么&#xff1f; 光学字符识别&#xff08;Optical Character Recognition, OCR&#xff09;是指对文本资料的图像文件进行分析识别处理&#xff0c;获取文字及版面信息的过程。 亦即将图像中的文字进行识别&#xff0c;并以文本的形式返回。 二、OCR的基本流程 1…

实战教程:如何将自己的Python包发布到PyPI上

1. PyPi的用途 Python中我们经常会用到第三方的包&#xff0c;默认情况下&#xff0c;用到的第三方工具包基本都是从Pypi.org里面下载。 我们举个栗子: 如果你希望用Python实现一个金融量化分析工具&#xff0c;目前比较好用的金融数据来源是 Yahoo 和 Google。你可能需要读取…

3dMax全球学习资源、资源文件和教程 !

此样例教育教程和学习资源旨在提供使用Autodesk 3ds Max时的计划知识和培训、正确的工作流、流程管理和最佳实践。 您在Autodesk三维设计领域的职业生涯 有关使用3ds Max和Maya在计算机图形领域开始职业生涯的提示&#xff08;包括新的3ds Max和Maya介绍教程&#xff0c;以复…

Spring Cloud:构建微服务的最佳实践

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

PLC编码器测速(限幅滤波+中心差分法求导SCL源代码)

M法测速的基本原理,大家可以查看专栏的系列文章,这里不再赘述常用链接如下: PLC通过编码器反馈值计算速度的推荐做法(算法解析+ST代码)_编码器脉冲怎么转换为速度_RXXW_Dor的博客-CSDN博客PLC如何测量采集编码器的位置数据,不清楚的可以参看我的另一篇博文:三菱FX3U PLC…

C#模拟PLC设备运行

涉及&#xff1a;控件数据绑定&#xff0c;动画效果 using System; using System.Windows.Forms;namespace PLCUI {public partial class MainForm : Form{ public MainForm(){InitializeComponent();}private void MainForm_Load(object sender, EventArgs e){// 方式2&#x…

索尼 toio™ 应用创意开发征文|探索创新的玩乐世界——索尼 toio™

导语&#xff1a; 在技术的不断进步和发展中&#xff0c;玩具也逐渐融入了智能化的潮流。索尼 toio™作为一款前沿的智能玩具&#xff0c;给孩子和成人带来了全新的游戏体验。本文将介绍索尼 toio™的特点、功能和应用场景&#xff0c;让读者了解这个令人兴奋的创新产品。 1. 了…

《Go语言在微服务中的崛起:为什么Go是下一个后端之星?》

&#x1f337;&#x1f341; 博主猫头虎&#x1f405;&#x1f43e; 带您进入 Golang 语言的新世界✨✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文并茂&#x1f…

【Unity的HDRP下ShaderGraph实现权重缩放全息投影_(内附源码)】

实现权重缩放全息投影 效果如下 效果如下 顶点位置偏移 链接&#xff1a; 提取码&#xff1a;1234

Axure RP仿QQ音乐app高保真原型图交互模板源文件

Axure RP仿QQ音乐app高保真原型图交互模板源文件。本套素材模板的机型选择华为的mate30&#xff0c;在尺寸和风格方面&#xff0c;采用标准化制作方案&#xff0c;这样做出来的原型图模板显示效果非常优秀。 原型中使用大量的动态面板、中继器、母版&#xff0c;涵盖Axure中技…