Vue.js常用指令汇总(v-if、v-for等)


Posted in Javascript onNovember 03, 2016

有时候指令太多会造成记错、记混的问题,所以本文在记忆的时候会采用穿插记忆的方式,交叉比对,不易出错。

本文主要讲了一下六个指令:

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'
 }
 })

页面渲染效果:

Vue.js常用指令汇总(v-if、v-for等)

所以,v-if指令只渲染他身后表达式为true的元素;在这里引入v-show指令,因为二者的区别是v-show指令会渲染他身后表达式为false的元素,这样的元素上会添加css代码:style="display:none"; 将上面v-if的实例代码改为v-show,页面渲染效果为:

Vue.js常用指令汇总(v-if、v-for等) 

2, v-showv-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>

页面效果:

 Vue.js常用指令汇总(v-if、v-for等)

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组件学习教程进行学习。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Ext面向对象开发实践(续)
Nov 18 Javascript
jQuery 连续列表实现代码
Dec 21 Javascript
比较搞笑的js陷阱题
Feb 07 Javascript
对xmlHttp对象方法和属性的理解
Jan 17 Javascript
中文输入法不触发onkeyup事件的解决办法
Jul 09 Javascript
常用DOM整理
Jun 16 Javascript
jQuery实现的类似淘宝网站搜索框样式代码分享
Aug 24 Javascript
详解支持Angular 2的表格控件
Jan 19 Javascript
vue在使用ECharts时的异步更新和数据加载详解
Nov 22 Javascript
浅入深出Vue之自动化路由
Aug 06 Javascript
JavaScript如何判断input数据类型
Feb 06 Javascript
easyUI 实现的后台分页与前台显示功能示例
Jun 01 Javascript
巧用Vue.js+Vuex制作专门收藏微信公众号的app
Nov 03 #Javascript
原生javascript实现的ajax异步封装功能示例
Nov 03 #Javascript
探索Vue.js component内容实现
Nov 03 #Javascript
javascript跨域请求包装函数与用法示例
Nov 03 #Javascript
预防网页挂马的方法总结
Nov 03 #Javascript
网页挂马方式整理及详细介绍
Nov 03 #Javascript
AngularJS实现在ng-Options加上index的解决方法
Nov 03 #Javascript
You might like
15个小时----从修改程序到自己些程序
2006/10/09 PHP
PHP获得数组交集与差集的方法
2015/06/10 PHP
PHP-FPM之Chroot执行环境详解
2015/08/03 PHP
JavaScript入门教程(2) JS基础知识
2009/01/31 Javascript
点击文章内容处弹出页面代码
2009/10/01 Javascript
jQuery实现切换页面布局使用介绍
2011/10/09 Javascript
jQuery 翻牌或百叶窗效果(内容三秒自动切换)
2012/06/14 Javascript
js的隐含参数(arguments,callee,caller)使用方法
2014/01/28 Javascript
Select标签下拉列表二级联动级联实例代码
2014/02/07 Javascript
js中的onchange和onpropertychange (onchange无效的解决方法)
2014/03/08 Javascript
JavaScript使用循环和分割来替换和删除元素实例
2014/10/13 Javascript
解析javascript中鼠标滚轮事件
2015/05/26 Javascript
JS实现图片剪裁并预览效果
2016/08/12 Javascript
Vue 将后台传过来的带html字段的字符串转换为 HTML
2018/03/29 Javascript
微信小程序云开发之使用云函数
2019/05/17 Javascript
vue点击当前路由高亮小案例
2019/09/26 Javascript
微信小程序实现简单文字跑马灯
2020/05/26 Javascript
[51:29]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python数据结构与算法之图结构(Graph)实例分析
2017/09/05 Python
python实现word 2007文档转换为pdf文件
2018/03/15 Python
关于Tensorflow中的tf.train.batch函数的使用
2018/04/24 Python
微信公众号token验证失败解决方案
2019/07/22 Python
Python实现微信机器人的方法
2019/09/06 Python
Python with标签使用方法解析
2020/01/17 Python
pytorch 模型的train模式与eval模式实例
2020/02/20 Python
python 元组的使用方法
2020/06/09 Python
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
2020/06/11 Python
HTML5计时器小例子
2013/10/15 HTML / CSS
Foot Locker德国官方网站:美国运动服和鞋类零售商
2018/11/01 全球购物
Linux Interview Questions For software testers
2012/06/02 面试题
党员民主生活会个人整改措施材料
2014/09/16 职场文书
优秀教师先进事迹材料
2014/12/15 职场文书
单位收入证明范本
2015/06/18 职场文书
聘任书格式及范文
2015/09/21 职场文书
2016天猫双十一广告语
2016/01/28 职场文书
《角的度量》教学反思
2016/02/18 职场文书