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 相关文章推荐
JavaScript学习笔记之检测客户端类型是(引擎、浏览器、平台、操作系统、移动设备)
Dec 03 Javascript
js正则表达式replace替换变量方法
May 21 Javascript
JS检测移动端横竖屏的代码
May 30 Javascript
jQuery tagsinput在h5邮件客户端中应用详解
Sep 26 Javascript
vue2实现移动端上传、预览、压缩图片解决拍照旋转问题
Apr 13 Javascript
js 实现复选框只能选择一项的示例代码
Jan 23 Javascript
基于jQuery.i18n实现web前端的国际化
May 04 jQuery
如何在JavaScript中优雅的提取循环内数据详解
Mar 04 Javascript
基于JS实现web端录音与播放功能
Apr 17 Javascript
js实现简单掷骰子效果
Oct 24 Javascript
uni-app如何实现增量更新功能
Jan 03 Javascript
vue项目查看vue版本及cli版本的实现方式
Oct 24 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
php实现的在线人员函数库
2008/04/09 PHP
关于laravel 数据库迁移中integer类型是无法指定长度的问题
2019/10/09 PHP
Sample script that deletes a SQL Server database
2007/06/16 Javascript
JavaScript 事件系统
2010/07/22 Javascript
JavaScript isArray()函数判断对象类型的种种方法
2010/10/11 Javascript
jQuery + Flex 通过拖拽方式动态改变图片的代码
2011/08/03 Javascript
javascript图像处理—仿射变换深度理解
2013/01/16 Javascript
js怎么覆盖原有方法实现重写
2014/09/04 Javascript
JavaScript和CSS交互的方法汇总
2014/12/02 Javascript
jQuery中is()方法用法实例
2015/01/06 Javascript
JavaScript实现阿拉伯数字和中文数字互相转换
2016/06/12 Javascript
jquery datatable服务端分页
2016/08/31 Javascript
Javascript 跨域知识详细介绍
2016/10/30 Javascript
php 修改密码实现代码
2017/05/24 Javascript
vue loadmore 组件滑动加载更多源码解析
2017/07/19 Javascript
node+koa实现数据mock接口的方法
2017/09/20 Javascript
浅谈angular2路由预加载策略
2017/10/04 Javascript
详解Nuxt.js部署及踩过的坑
2018/08/07 Javascript
如何阻止小程序遮罩层下方图层滚动
2019/09/05 Javascript
js动态生成表格(节点操作)
2021/01/12 Javascript
[03:14]辉夜杯主赛事 12月25日每日之星
2015/12/26 DOTA
python中yaml配置文件模块的使用详解
2018/04/27 Python
python编程使用协程并发的优缺点
2018/09/20 Python
在numpy矩阵中令小于0的元素改为0的实例
2019/01/26 Python
pandas DataFrame索引行列的实现
2019/06/04 Python
python 连续不等式语法糖实例
2020/04/15 Python
python二维图制作的实例代码
2020/12/03 Python
HTML5 canvas标签实现刮刮卡效果
2015/04/24 HTML / CSS
英国定做窗帘和纺织品面料一站式商店:Dekoria
2018/08/29 全球购物
为您的家、后院、车库等在线购物:Spreetail
2019/06/17 全球购物
介绍一下Transact-SQL中SPACE函数的用法
2015/09/01 面试题
新闻专业毕业生求职信
2014/08/08 职场文书
2015年学生会部门工作总结
2015/04/21 职场文书
反腐倡廉心得体会2016
2016/01/13 职场文书
JavaScript的Set数据结构详解
2022/02/18 Javascript
python实现学员管理系统(面向对象版)
2022/06/05 Python