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,一经查实,立即删除!

相关文章

doris docker环境编译部署

1.准备doris docker环境 xiuchenggongxiuchengdeMacBook-Pro bin % docker pull apache/doris:build-env-ldb-toolchain-latestbuild-env-ldb-toolchain-latest: Pulling from apache/doris eeedae70be19: Pull complete a3ed95caeb02: Pull complete Digest: sha256:63d9a9…

龙迅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;每个…

flink sql 13.2 读取与写入数据库的报错(踩坑)

flink sql读取与写入数据的报错&#xff08;踩坑&#xff09; flink sql sink mysql 没有数据写入或数据写入中文乱码或报useSSLflink sql source mysql 任务执行正常没有任何报错信息&#xff08;构建 Flink LookUp 表 的踩坑历程&#xff09; flink sql sink mysql 没有数据写…

哈希表的实现(哈希捅)

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

TCP、UDP 协议的区别,各自的应用场景

分析&回答 TCP 传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前&#xff0c;必须先在双方之间建立一个TCP连接&#xff0c;之后才能传输数据。TCP提供超时重发&#xff0c;丢弃重复数据&#xff0c;检验数据&#xff0c;流量控制等功能&…

LeetCode-93-复原IP地址

题目描述&#xff1a;有效 IP 地址 正好由四个整数&#xff08;每个整数位于 0 到 255 之间组成&#xff0c;且不能含有前导 0&#xff09;&#xff0c;整数之间用 ‘.’ 分隔。 例如&#xff1a;“0.1.2.201” 和 “192.168.1.1” 是 有效 IP 地址&#xff0c;但是 “0.011.25…

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…

c3p0、dbcp、proxool、BoneCP比较

1.1 测试环境: 操作系统&#xff1a;windows xp sp3数据库&#xff1a;mysql 5.1 1.2 测试条件&#xff1a; initialSize30; maxSize200; minSize30; 其余参数为默认值&#xff1b; 1.3 测试代码&#xff1a; 利用JAVA代码模拟多线程对这三种数据库连接池进行测试&#xf…

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. …

Day61:代码随想录结束打卡~

大体感受 为期60的算法训练营结束了&#xff0c;这钱其实挺值的&#xff0c;人就是这样&#xff0c;一旦你有点付出才会懂得珍惜。 最大的收获就是见识到了人有决心有多可怕&#xff0c;这60天如果让我自己刷&#xff0c;其实根本坚持不了几天&#xff0c;但是现在证明我确实坚…

大数据(八):Pandas的基础应用详解(五)

专栏介绍 结合自身经验和内部资料总结的Python教程,每天3-5章,最短1个月就能全方位的完成Python的学习并进行实战开发,学完了定能成为大佬!加油吧!卷起来! 全部文章请访问专栏:《Python全栈教程(0基础)》 再推荐一下最近热更的:《大厂测试高频面试题详解》 该专栏对…

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

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

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

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

在h5中使用 JavaScript 和 HTML DOM 对表格的表头进行排序的解决方案

在 HTML5 (h5) 中&#xff0c;可以使用 JavaScript 和 HTML DOM 来对表格的表头进行排序。以下是一个简单的示例&#xff0c;使用纯 JavaScript 实现&#xff1a; 首先&#xff0c;在 HTML 中创建一个带有表头的表格&#xff1a; <table id"myTable"><the…

P1294 高手去散步

高手去散步 - 洛谷 题解&#xff1a; 可能走到一半就走完了&#xff0c;注意递归结束条件 #include<bits/stdc.h> using namespace std; const int N110; int n,m,flag; int e[N],ne[N],h[N],w[N],idx; int st[N]; int ans-1e13; void add(int a,int b,int c) {e[idx]…

【Linux之进程间通信】09.有名管道和无名管道(补充)

有名管道最大的特点&#xff08;为什么要有无名管道和有名管道&#xff1f;&#xff09; 有名管道是真实存在的一个特殊文件&#xff0c;所以当进程退出后&#xff0c;管道文件还在&#xff0c;有名管道文件将继续保存在文件系统中以便以后使用&#xff0c;其他进程仍然可以读写…

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

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