v-指令 v-if v-else v-show v-for v-on

1.v-if/v-else

v-if指令可以完全根据表达式的值在DOM中生成或移除一个元素。v-else必须跟着v-if,充当else功能。

<div id="example">
		<p v-if="greeting">Hello</p>
		<p v-else="greeting">Hi</p>
		<template v-if="ok">
			<h1>Tiele</h1>
			<p>Paragraph</p>
		</template>
</div>
var exampleVM2=new Vue({
			el: '#example',
			data: {
				greeting: false,
				ok: true,
			}
		})


可以看到包装元素<template>最终是不会渲染出来,它可以用来包装多个需要切换元素。而else内容最终也不会渲染到DOM中

2.v-show

v-show指令是根据表达式的值来显示或者隐藏HTML元素内容的。

<div id="example2">
			<p v-show="greeting">Hello!</p>
			<p v-show="!greeting">Hi</p>
</div>
var example=new Vue({
			el: '#example2',
			data: {
				greeting: true
				
			}
		})

将v-show用在指令上时,因为指令的优先级v-else会出现问题,所以可以通过用另一个v-show指令代替v-else,如上。

 一般来说,v-if有更高的切换消耗,而v-show有更高的初始渲染消耗。因此,如果需要频繁的切换,则使用v-show较好;如果运行时条件不大可能改变,则使用v-if较好

3.v-for

我们可以使用v-for指令基于源数据重复渲染元素

<div id="demo">
		<ul>
			<li v-for="item in items" class="item-{{$index}}">
				{{$index}} -{{parentMessage}} {{item.msg}}
			</li>
		</ul>
	</div>
var demo= new Vue({
			el: '#demo',
			data: {
				parentMessage: '滴滴',
				items:[
                   {msg: '顺风车'},
                   {msg: '专车'}
				]

			}
		})

$index可以用来呈现相应的数组索引,注意需要最新版本的Vue才有此功能。

4.v-on

v-on指令用于绑定事件监听器。

v-on后面不仅可以跟参数,还可以增加修饰符:

.stop -----调用event.stopPropagation(),停止冒泡

.prevent-----调用event.preventFefault(),阻止默认行为

.capture-----添加事件监听器时使用capture模式

.self------只当时间是从监听器绑定的元素本身触发时才触发回调

<div id="example">
		<button @click="toggleShow">{{msg}}</button>
        <p v-if="showTotal">显示</p>
</div>
	var demo=new Vue({
			el: "#example",
			data: {
				showTotal:true,
				msg:'点击显示与隐藏'
			},
			methods:{
				toggleShow:function(){
					this.showTotal=!this.showTotal
				}
			}
		})



v-on:可以简写为@


猜你喜欢

转载自blog.csdn.net/djz917/article/details/80693576