一,vue常用指令
1.v-if :
v-if 后面的是一个表达式或者也可以是返回true或false的表达式。 且值为true和fasle false的话就会被注释 v-show是给一个display:none的属性 让它不显示! true就正常显示
2.v-else:
必须和v-if一起用才可以 不能单独用 而且必须在v-if下面 中间有别的标签也会报错
3.v-else-if:
这个比较简单,直接看代码
<div id="app">
<p>输入的成绩对应的等级是:</p>
<p v-if="score >= 90">优秀</p>
<p v-else-if="score >= 75">良好</p>
<p v-else-if="score >= 60">及格</p>
<p v-else>不及格</p>
<input type="text" v-model="score">
</div>
<script src="js/vue.js"></script>
<script>
new Vue({
el: '#app',
data: {
score: 90 // 优秀 良好 及格 不及格
}
});
</script>
4.v-show:
和v-if一样,区别是v-if 是直接创建和销毁, v-show是给一个display:none的属性,让它不显示!
v-show和v-if的区别:
v-if 是真实的条件渲染,因为它会确保条件块在切换当中适当地销毁与重建条件块内的事件监听器和子组件; v-show 则只是简单地基于 CSS 切换
v-if 有更高的切换消耗而 v-show 有更高的初始渲染消耗。因此,如果需要频繁切换使用 v-show 较好,如果在运行时条件不大可能改变则使用 v-if 较好
5.v-for:
基于数据渲染一个列表,类似于JS中的遍历。其数据类型可以是 Array | Object | number | string
该指令之值,必须使用特定的语法(item, index) in items, index是索引,可以省略。item是 为当前遍历元素提供别名(可以自己随便起名字) 。v-for的优先级别高于v-if之类的其他指令
6.v-bind:
简写可以直接用冒号:,还可以绑定类名和css样式等
<a v-bind:href="url"></a>
<a :href="url"></a>
7.v-on:
绑定事件的指令
<!-- 完整语法 -->
<a v-on:click="doSomething">...</a>
<!-- 缩写 -->
<a @click="doSomething">...</a>
8.v-model:
主要用于数据的双向绑定操作,后面再单独写一篇v-model的语法糖
二,常用修饰符
事件修饰符:
1.stop阻止事件冒泡,相当于调用了event.stopPropagation()方法:
<button @click.stop="test">test</button>
2.prevent阻止默认行为,相当于调用了event.preventDefault()方法,比如表单的提交、a标签的跳转就是默认事件:
<a @click.prevent="test">test</a>
3.self只有元素本身触发时才触发方法,就是只有点击元素本身才会触发。比如一个div里面有个按钮,div和按钮都有事件,我们点击按钮,div绑定的方法也会触发,如果div的click加上self,只有点击到div的时候才会触发,变相的算是阻止冒泡:
<div @click.self="test"></div>
4. once事件只能用一次,无论点击几次,执行一次之后都不会再执行
<div @click.once="test"></div>
5.keyCode监听按键的指令,具体可以查看vue的键码对应表
v-model修饰符:
1.lazy输入框改变,这个数据就会改变,lazy这个修饰符会在光标离开input框才会更新数据:
<input type="text" v-model.lazy="value">
2.trim输入框过滤首尾的空格:
<input type="text" v-model.trim="value">
3.number先输入数字就会限制输入只能是数字,先字符串就相当于没有加number,注意,不是输入框不能输入字符串,是这个数据是数字:
<input type="text” v-model.number="value">