Vue.js常用指令汇总(v-if、v-for等)
有时候指令太多会造成记错、记混的问题,所以本文在记忆的时候会采用穿插记忆的方式,交叉比对,不易出错。
本文主要讲了一下六个指令:
v-if//v-show//v-else//v-for//v-bind//v-on
1. v-if 条件渲染指令,根据其后表达式的bool值进行判断是否渲染该元素;
eg:
html:
<div id="example01"> <p v-if="male">male</p> <p v-if="female">female</p> <p v-if="age>25">age:{{age}}</p> <p v-if="name.indexof('lin')>0">name:{{name}}</p> </div>
js:
var vm= new vue({ el:"#example01", data:{ male:true, female: false, age:29, name:'colin' } })
页面渲染效果:
所以,v-if指令只渲染他身后表达式为true的元素;在这里引入v-show指令,因为二者的区别是v-show指令会渲染他身后表达式为false的元素,这样的元素上会添加css代码:style="display:none"; 将上面v-if的实例代码改为v-show,页面渲染效果为:
2, v-show 与v-if类似,只是会渲染其身后表达式为false的元素,而且会给这样的元素添加css代码:style="display:none";
3, v-else 必须跟在v-if/v-show指令之后,不然不起作用;
如果v-if/v-show指令的表达式为true,则else元素不显示;如果v-if/v-show指令的表达式为false,则else元素显示在页面上;
eg:
<div id="app"> <h1 v-if="age >= 25">age: {{ age }}</h1> <h1 v-else>name: {{ name }}</h1> <hr> <h1 v-show="name.indexof('cool') = 0">name: {{ name }}</h1> <h1 v-else>sex: {{ sex }}</h1> </div>
<script> var vm = new vue({ el: '#app', data: { age: 21, name: 'keepcool', sex: 'male' } }) </script>
4, v-for 类似js的遍历,用法为 v-for="item in items", items是数组,item为数组中的数组元素。
eg:
css:
<style> table,th,tr,td{ border:1px solid #ffcccc; border-collapse: collapse; } </style>
html:
<div id="example03"> <table> <thead> <tr> <th>name</th> <th>age</th> <th>sex</th> </tr> </thead> <tbody> <tr v-for="person in people"> <td>{{ person.name }}</td> <td>{{ person.age }}</td> <td>{{ person.sex }}</td> </tr> </tbody> </table> </div>
js:
<script> var vm = new vue({ el: '#example03', data: { people: [{ name: 'jack', age: 30, sex: 'male' }, { name: 'bill', age: 26, sex: 'male' }, { name: 'tracy', age: 22, sex: 'female' }, { name: 'chris', age: 36, sex: 'male' }] } }) </script>
页面效果:
5, v-bind 这个指令用于响应地更新 html 特性,比如绑定某个class元素或元素的style样式。
eg,分页功能中当前页数高亮的效果,可以使用bind指令。
<ul class="pagination"> <li v-for="n in pagecount"> <a href="javascripit:void(0)" v-bind:class="activenumber === n + 1 ? 'active' : ''">{{ n + 1 }}</a> </li> </ul>
6, v-on 用于监听指定元素的dom事件,比如点击事件。
eg:
<div id="example04"> <input type="text" v-model="message"> <button v-on:click="greet">greet</button> <!-- v-on指令可以缩写为@符号--> <button @click="greet">greet again</button> </div>
<script> var exampledata04={ message:"nice meeting u" }; var vm2=new vue({ el:"#example04", data:exampledata04, methods:{ greet:function(){ alert(this.message); } } }) </script>
本文已被整理到了《vue.js前端组件学习教程》,欢迎大家学习阅读。
关于vue.js组件的教程,请大家点击专题vue.js组件学习教程进行学习。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
Vue.js常用指令汇总(v-if、v-for等)
-
Vue.js常用指令之循环使用v-for指令教程
-
详解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
-
Vue.js常用指令汇总(v-if、v-for等)
-
Vue.js常用指令之循环使用v-for指令教程
-
Vue.js常用指令之循环使用v-for指令教程
-
详解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
-
Vue.js常用指令之循环使用v-for指令教程
-
Vue.js常用指令汇总(v-if、v-for等)
-
Vue.js常用指令汇总(v-if、v-for等)