vue常用指令有v-once指令、v-show指令、v-if指令、v-else指令、v-else-if指令、v-for指令、v-html指令、v-text指令、v-bind指令、v-on指令、v-model指令等等,下面这篇文章主要给大家介绍了八个Vue中常用的v指令的相关资料,需要的朋友可以参考下
<!DOCTYPE html>
<html lang="en">
<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>
<script src="js/vue.min.js"></script>
</head>
<div id="app">
<!-- 第一种.获取 vue 中定义的数据,会将插值表达式的内容与标签中的内容进行拼接 -->
<h2>{{msg}}-云梦归遥</h2>
<!-- 第二种.获取 vue 中定义的数据,设置标签中的内容,而且会覆盖标签中的内容 -->
<h2 v-text="msg">-云梦归遥</h2>
<h2 v-text="msg+21"></h2> <!-- v-text 拼接数字可以直接相加 -->
<h2 v-text="msg+'-云梦归遥'"></h2> <!-- v-text 拼接字符串需要用不同于外部的单引号或双引号 -->
</body>
<script>
var VM = new Vue({
el: "#app",
data: {
msg: "Java 程序员",
</script>
</html>
2 v-html 指令
可以当做 v-text 一样使用,显示普通文本
设置元素的 innerHTML (可以向元素中写入新的标签)
<!DOCTYPE html>
<html lang="en">
<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>
<script src="js/vue.min.js"></script>
</head>
<div id="app">
<!-- 1.获取普通文本的三种方式 -->
<h2>{{msg}}</h2>
<h2 v-text="msg"></h2>
<h2 v-html="msg"></h2>
<!-- 2.v-html 不仅可以当做 v-text 使用,更重要的是可以设置元素的 innerHTML -->
<h2 v-text="url"></h2> <!-- v-text 直接以文本形式进行显示 -->
<h2 v-html="url"></h2> <!-- v-html 将会以定义的标签的形式进行显示 -->
</body>
<script>
var VM = new Vue({
el: "#app",
data: {
msg: "Java程序员",
url: "<a href='https://www.baidu.com'>百度一下</a>"
</script>
</html>
3 v-on 指令
作用: 为元素绑定事件, 比如: v-on:click,可以简写为 @click="方法
<!DOCTYPE html>
<html lang="en">
<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>
<script src="js/vue.min.js"></script>
</head>
<div id="app">
<!-- 1.单击事件 -->
<!-- 标准书写的方式 v-on:click="方法名" -->
<input type="button" value="调用v-on指令-单击事件-标准书写" v-on:click="show"><br>
<!-- 简写的方式: @click="方法名" -->
<input type="button" value="调用v-on指令-单击事件-简写的方式" @click="show"><br>
<!-- 2.双击事件 -->
<input type="button" value="双击事件" @dblclick="show"><br>
<!-- 绑定点击事件,修改标签内容 -->
<h2 @click="changeName">{{msg}}</h2>
<h2 v-text="msg" @click="changeName"></h2>
<h2 v-html="msg" @click="changeName"></h2>
</body>
<script>
var VM = new Vue({
el: "#app",
data: {
msg: "Java程序员"
// 通过 methods 来定义 v-on 中调用的方法
methods: {
show:function(){
alert("v-on 指令对应的方法被调用");
changeName:function(){
// 使用 this 获取 data 中的数据
this.msg += "-云梦归遥";
</script>
</html>
案例:计数器
<!DOCTYPE html>
<html lang="en">
<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>
<script src="js/vue.min.js"></script>
<!-- <link href="css/inputNum.css" rel="external nofollow" rel="stylesheet"> -->
</head>
<div id="app">
<!-- 计算功能区域 -->
<input type="button" @click="addNum" value="+">
<span>{{num}}</span>
<input type="button" v-on:click="minusNum" value="-">
<p>{{result}}</p>
</body>
<script>
var VM = new Vue({
el: "#app",
data: {
num: 0,
result: "当前数值是[ 0 ], 还未执行操作"
methods: {
addNum: function(){
this.num += 1;
this.result = "当前数值是[ " + this.num + " ], 执行 +1 操作";
minusNum: function(){
this.num -= 1;
this.result = "当前数值是[ " + this.num + " ], 执行 -1 操作";
</script>
</html>
4 v-show 指令
作用: v-show 需要一个 boolean 类型的值,根据值的变化,进行标签的显示和隐藏
原理:修改 style 的display为 block 或 none,进行显示和隐藏
<!DOCTYPE html>
<html lang="en">
<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>
<script src="js/vue.min.js"></script>
</head>
<div id="app">
<input type="button" value="图片显示/隐藏切换" @click="show"><br>
<!-- v-show 需要一个 boolean 类型的值,根据值的变化,进行标签的显示和隐藏 -->
<img src="img/logo.jpg" v-show="flag" style="width: 300px; height: 300px;">
<!-- 还可以通过表达式的结果 来进行显示和隐藏 -->
<img src="img/logo.jpg" v-show="num > 18" style="width: 300px; height: 300px;">
</body>
<script>
var VM = new Vue({
el: "#app",
data: {
flag: true, // 作为是否显示图片的判定值
num: 21
methods: {
show:function(){
this.flag = !this.flag;
</script>
</html>
5 v-if 指令
作用: 根据表达值的真假,切换元素的显示和隐藏( 操纵dom 元素 )
原理:会操作 DOM 元素,将元素删除或添加,而不是像 v-show 一样修改样式
使用场景:频繁切换使用 v-show,反之使用 v-if
<!DOCTYPE html>
<html lang="en">
<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>
<script src="js/vue.min.js"></script>
</head>
<div id="app">
<input type="button" value="v-if切换图片显示/隐藏" @click="show"><br>
<!-- v-if 根据表达式的真假判断显示 或 隐藏 -->
<img src="img/logo.jpg" style="width: 300px; height: 300px;" v-if="isShow">
</body>
<script>
var VM = new Vue({
el: "#app",
data:{
isShow: false,
methods: {
show: function(){
this.isShow = !this.isShow;
</script>
</html>
6 v-bind 指令
作用: 设置元素的属性 (比如:src,title,class,style传递json串)
一次只能修改一个属性
<!DOCTYPE html>
<html lang="en">
<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>
<script src="js/vue.min.js"></script>
</head>
<div id="app">
<!-- 这是原图片 -->
<img src="img/logo.jpg" style="width: 300px;height: 300px;" alt="图片加载失败">
<!-- v-bind:src 设置了一个 图片的 属性 -->
<img v-bind:src="img1" style="width: 450px; height: 300px;" alt="图片加载失败">
<!-- v-bind:title 设置了一个图片的 标题 ,使用 v-bind修改属性都可以简写为 :属性名-->
<img v-bind:src="img2" style="width: 450px;height: 300px;" :title="img2_title" alt="图片加载失败">
<!-- v-bind 设置 class -->
<div style="width: 300px; height: 300px; background: green;" :style="{width: size + 'px'}"></div>
</body>
<script>
var VM = new Vue({
el: "#app",
data: {
img1: "img/4.png",
img2: "img/3.png",
img2_title: "斗罗大陆-火舞",
size: 200,
methods: {
</script>
</html>
7 v-for 指令
作用: 根据数据生成列表结构,常与数组一起使用,进行遍历操作
- v-for="item,index in arr1"
- v-for="person in persons"
相关方法:
- push():将元素追加进入数组
- shift():将数组的起始元素删除
数组的长度变化,会同步更新到页面上,是响应式的
<!DOCTYPE html>
<html lang="en">
<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>
<script src="js/vue.min.js"></script>
</head>
<div id="app">
<!-- v-for:在 li 标签中进行获取数组元素,进行展示 -->
<!-- item: 循环得到的元素;index:获取元素在数组中的下标 -->
<li v-for="item,index in arr1">
第{{index + 1}}个同学: {{item}}
<input type="button" value="添加数据" @click="addData">
<input type="button" value="移除数据" @click="removeData">
<!-- v-for 遍历,展示数据 -->
<h2 v-for="person in persons">
我是 {{person.name}}, 我今年 {{person.age}} 岁.
</body>
<script>
var VM = new Vue({
el: "#app",
data: {
// 数组
arr1: ["Mike", "John", "Jack"],
// 对象数组
persons: [
{name: "Mike", age: 21},
{name: "John", age: 22},
{name: "Jack", age: 23},
methods: {
addData: function(){
// 向数组中添加元素
this.persons.push({name: "Peter", age: 24});
removeData: function(){
// 移除数组中的元素,会移除第一个元素
this.persons.shift();
</script>
</html>
8 v-on 补充
- 可以向函数传递参数
- 事件修饰符,可以制定哪些方式触发事件,比如说按键,回车等
<!DOCTYPE html>
<html lang="en">
<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>
<script src="js/vue.min.js"></script>
</head>
<div id="app">
<!-- v-on:绑定函数,可以进行传参 -->
<input type="button" value="礼物刷起来" @click="show(3, '穿云箭')"><br>
<span style="color: green;">向主播狂刷{{num}}个</span>
<span style="color: red;">{{gift}}</span>
<!-- v-on:事件修饰符 指定哪些方式触发事件,比如说 按键,回车等等 -->
<input type="text" @keyup="up" placeholder="一输入内容就会弹窗"><br>
<input type="text" @keyup.enter="up" placeholder="输入回车才会弹窗"><br>
</body>
<script>
var VM = new Vue({
el: "#app",
data: {
num: 1,
gift: "一个鱼丸",
methods: {
show:function(p1, p2){
this.num = p1;
this.gift = p2;
up:function(){
alert("hello world");
</script>
</html>
到此这篇关于八个Vue中常用的v指令详解的文章就介绍到这了,更多相关Vue常用v指令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
Vue.js自定义指令的基本使用详情2022-05-05
vue监听路由变化的几种方式小结2022-05-05
Vue中的 ref,props,mixin属性2022-05-05
Vue的指令中实现传递更多参数2022-05-05
vue的自定义指令传参方式2022-05-05
Vue项目报错:parseComponent问题及解决2022-05-05
Vue3项目中引用TS语法的实例讲解2022-05-05
美国设下计谋,用娘炮文化重塑日本,已影响至中国2021-11-19
时空伴随者是什么意思?时空伴随者介绍2021-11-09
工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终2021-11-05
2022年放假安排出炉:五一连休5天 2022年所有节日一览表2021-10-26
电脑版 - 返回首页
2006-2023 脚本之家 JB51.Net , All Rights Reserved.
苏ICP备14036222号