【Vue】v-xxx指令全面总结

news/2024/7/19 14:42:56 标签: vue, js, javascript

文章目录

    • v-text & v-html
    • v-model
    • v-on
    • v-for
    • v-if & v-show
    • v-bind

 


v-text & v-html

在讲这两个指令之前,先说说我们很熟悉的 插值,再来说说用这两条指令替代插值的好处。

语法:

javascript">{{插值表达式}}

说明:

(1)这是使用Vue实例最简单的方式——花括号内部可以直接使用Vue实例的数据和方法

(2)不管是直接写个js语句,还是调用Vue实例,花括号内部必须有返回值

(3)当网速过慢,数据尚未加载成功时,页面时会显示最原始的花括号,这种现象叫做 插值闪烁 —— 使用指令可以避免这种现象

语法:

<span v-text="msg"></span>
<span v-html="msg"></span>

说明:

(1)将数据写到元素内部,如果数据是HTML语句,会被当作普通文本

(2)将数据写到元素内部,如果数据是HTML语句,会作为HTML被渲染

演示:

<div id="app">
    <span v-text="msg"></span><br>
    <span v-html="msg"></span><br>
</div>
<script type="text/javascript">javascript">
    var app = new Vue({
        el: "#app",
        data: {
        	// 注意这里的数据
            msg: "<h2>Lolisuki!<h2>"
        }
    });
</script>

在这里插入图片描述

 
 

v-model

语法:

<input type="checkbox" value="111" v-model="xxx">111<br>
<input type="checkbox" value="222" v-model="xxx">222<br>
<input type="checkbox" value="333" v-model="xxx">333<br>

说明:

(1)上面讲的v-text/v-html其实是单向绑定,因为此时页面上的元素并不能被用户改动

(2)而v-model可是实现模型与视图的双向绑定,因为使用v-model的元素都是用户可以在视图直接修改的

(3)所以可使用v-model的元素有:input、select、textarea、checkbox、radio等

(4)上面的这些元素,对应的绑定数据的类型是不同的。比如input、textarea对应字符串,select、checkbox对应数组

演示:

<div id="app">
    <input type="checkbox" value="物述有栖" v-model="vtuber">物述有栖<br>
    <input type="checkbox" value="神乐七奈" v-model="vtuber">神乐七奈<br>
    <input type="checkbox" value="猫宫日向" v-model="vtuber">猫宫日向<br>
    <h2>
        你选择了:{{vtuber.join(" ")}}
    </h2>
</div>
<script type="text/javascript">javascript">
    var app = new Vue({
        el: "#app",
        data: {
            vtuber: []
        }
    });
</script>

在这里插入图片描述

 
 

v-on

语法:

v-on:click="xxxxxx"
@click="xxxxxxx"

说明:

(1)用于给页面元素绑定事件

(2)之前我们使用的 event.preventDefault() 或 event.stopPropagation() 在Vue中如何实现呢?用下面的这些事件修饰符

事件修饰符作用
.stop阻止事件冒泡
.prevent阻止默认事件发生
.capture使用事件捕获模式
.self只有元素自身触发事件才执行,冒泡或捕获的都不执行
.once只执行一次

演示:

<div id="app">
    <button v-on:click="inc">增加</button>
    <button v-on:click="dec">减少</button>
    <h2>num = {{num}}</h2>
</div>
<script type="text/javascript">javascript">
    var app = new Vue({
        el: "#app",
        data: {
            num: 1
        },
        methods: {
            inc() {
                this.num++;
            },
            dec() {
                this.num--;
            }
        }
    });
</script>

在这里插入图片描述

 
 

v-for

语法:

遍历数组:
v-for="item in items"
遍历对象:
v-for="value in object"
v-for="(value,key) in object"

说明:

(1)既可以遍历数组元素,又可以遍历对象属性

(2)还可以在遍历时加上下标,比如 v-for="(item, index) in items"

演示:

<div id="app">
    <ul>
        <li v-for="user in users">
            {{user.name}} 的年龄是 {{user.age}}
        </li>
    </ul>
    <br>
    <ul>
        <li v-for="(value, key) in person">
            对象的属性{{key}},对象的属性值{{value}}
        </li>
    </ul>
</div>
<script type="text/javascript">javascript">
    var app = new Vue({
        el: "#app",
        data: {
            // 对象列表
            users: [
                {"name": "Alice", "age": 12},
                {"name": "Mana", "age": 11},
                {"name": "Hana", "age": 11},
            ],
            // 单个对象
            person: {"name": "Alice", "age": 12}
        }
    });
</script>

在这里插入图片描述

 
 

v-if & v-show

语法:

v-if="布尔表达式"
v-show="布尔表达式"

说明:

(1)v-if为false的时候,元素直接会不存在

(2)v-show为false的时候,元素只是display: none而已

(3)你甚至可以使用 v-else-if 和 v-else

演示:

<div id="app">
    <button @click="show=!show">点我切换</button>
    <h2 v-if="show">
        Lolisuki!!!
    </h2>
</div>
<script type="text/javascript">javascript">
    var app = new Vue({
        el: "#app",
        data: {
            show: true
        }
    });
</script>

在这里插入图片描述

 
 

v-bind

语法:

v-bind:属性名="Vue中的变量"

说明:

(1)v-bind用于在属性上(即标签上的各种字段)使用Vue数据

(2)因为元素的属性是不允许使用插值的,所以修改元素属性也只能使用v-bind

演示:

<div id="app">
    <img v-bind:src="imgSrc" :height="imgHeight" :width="imgWidth"/>
    <div v-bind:style="divStyle">Lolisuki!!!</div>
    <div v-bind:class="divClass">Lolisuki!!!</div>
</div>
<script type="text/javascript">javascript">
    var app = new Vue({
        el: "#app",
        data: {
            imgSrc: "img/pic.png",
            imgHeight: "600px",
            imgWidth: "1000px",
            divStyle: "color:pink",
            divClass: "pink" // css中要有.pink类
        }
    });
</script>

在这里插入图片描述

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

❤️


http://www.niftyadmin.cn/n/1329997.html

相关文章

多态的具体使用

多态体现的格式&#xff1a; 父类类型&#xff1a;指子类对象继承的父类类型&#xff0c;或者实现的父接口类型。 代码如下&#xff1a; Fu f new Zi(); f.method(); 当使用多态方式调用方法时&#xff0c;首先检查父类中是否有该方法&#xff0c;如果没有&#xff0c;则编译错…

【Vue】如何定义并注册一个组件?如何进行父子组件之间的通信?

理解组件化 在大型应用开发的时候&#xff0c;往往要有大量的页面。 这些页面&#xff0c;又往往会有相同的部分&#xff0c;比如会有相同的头部导航、相同的底部页尾。 这些相同的部分&#xff0c;我们就可以把它封装为一个独立的组件&#xff0c;然后在不同的页面中使用它…

final、权限、内部类、引用类型

final&#xff1a; 不可改变。可以用于修饰类、方法和变量。 类&#xff1a;被修饰的类&#xff0c;不能被继承。 方法&#xff1a;被修饰的方法&#xff0c;不能被重写。 变量&#xff1a;被修饰的变量&#xff0c;不能被重新赋值 在Java中提供了四种访问权限&#xff0c;使用…

object类.常用API(一)

1.Object类 Object类是Java语言中的根类&#xff0c;即所有类的父类。它中描述的所有方法子类都可以使用。在对象实例化的时候&#xff0c;最终找的父类就是Object。1.1toString 方法 toString方法返回该对象的字符串表示&#xff0c;其实该字符串内容就是对象的类型内存地址…

【Vue】Vue中的Ajax——axios组件详解

axios简介 Vue并不能直接支持ajax&#xff0c;所以通过组件来实现ajax异步请求。 最为推荐的组件就是 axios。 在进行下面的学习之前&#xff0c;先把这个组件安装到本地&#xff1a; npm install axios请求 axios这样发出请求&#xff1a;axios(config)axios.get(url[, c…

Object类、常用API(二)

java.util.Calendar是日历类&#xff0c;在Date后出现&#xff0c;替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为静态成员变量&#xff0c;方便获取。日历类就是方便获取各个时间属性的。 Calendar为抽象类&#xff0c;由于语言敏感性&#xff0c;Calendar类在创…

【LeetCode】Sama的个人记录_56

不要想的太复杂。自定义一个排序器即可&#xff1a; Arrays.sort(strings, (o1, o2) -> (o2 o1).compareTo(o1 o2)); 说明&#xff1a; 1. 这里的排序器的特殊之处在于&#xff0c;不是比较两个独立的元素&#xff0c;而是比较两个元素的组成结果———但这是可行的。 2. …

Collection、泛型

* 数组的长度是固定的。集合的长度是可变的。 * 数组中存储的是同一类型的元素&#xff0c;可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不一致。在开发中一般当对象多的时候&#xff0c;使用集合进行存储。 JAVASE提供了满足各种需求的API&#xff0c;在使…