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 相关文章推荐
jquery EasyUI的formatter格式化函数代码
Jan 12 Javascript
JS验证日期的格式YYYY-mm-dd 具体实现
Jun 29 Javascript
简单的ajax连接库分享(不用jquery的ajax)
Jan 19 Javascript
jQuery实现延迟跳转的方法
Jun 05 Javascript
js实现的倒计时按钮实例
Jun 24 Javascript
全面解析Angular中$Apply()及$Digest()的区别
Aug 04 Javascript
Angular懒加载机制刷新后无法回退的快速解决方法
Aug 30 Javascript
NODE.JS跨域问题的完美解决方案
Oct 20 Javascript
微信小程序 表单Form实例详解(附源码)
Dec 22 Javascript
jquery+css实现简单的图片轮播效果
Aug 07 jQuery
vue 验证两次输入的密码是否一致的方法示例
Sep 29 Javascript
vue 中的动态传参和query传参操作
Nov 09 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
解决phpmyadmin中文乱码问题。。。
2007/01/18 PHP
php 计算两个时间戳相隔的时间的函数(小时)
2009/12/18 PHP
支持数组的ADDSLASHES的php函数
2010/02/16 PHP
ThinkPHP CURD方法之field方法详解
2014/06/18 PHP
contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2011/09/13 Javascript
jquery中dom操作和事件的实例学习-表单验证
2011/11/30 Javascript
JS 加入收藏夹的代码(主流浏览器通用)
2013/05/13 Javascript
jQuery源码分析之Callbacks详解
2015/03/13 Javascript
JavaScript中join()方法的使用简介
2015/06/09 Javascript
JavaScript中setTimeout的那些事儿
2016/11/14 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
2017/01/11 Javascript
JS中type=&quot;button&quot;和type=&quot;submit&quot;的区别
2017/07/04 Javascript
angularJs中json数据转换与本地存储的实例
2018/10/08 Javascript
微信小程序select下拉框实现源码
2019/11/08 Javascript
原生JavaScript实现滑动拖动验证的示例代码
2019/12/06 Javascript
理解Proxy及使用Proxy实现vue数据双向绑定操作
2020/07/18 Javascript
vue 实现把路由单独分离出来
2020/08/13 Javascript
node.js基础知识汇总
2020/08/25 Javascript
原生JavaScript实现贪吃蛇游戏
2020/11/04 Javascript
vue项目中使用rem,在入口文件添加内容操作
2020/11/11 Javascript
[53:29]完美世界DOTA2联赛循环赛 DM vs Matador BO2第二场 11.04
2020/11/05 DOTA
对pandas进行数据预处理的实例讲解
2018/04/20 Python
使用pickle存储数据dump 和 load实例讲解
2019/12/30 Python
pytorch 修改预训练model实例
2020/01/18 Python
Python3 操作 MySQL 插入一条数据并返回主键 id的实例
2020/03/02 Python
浅谈keras.callbacks设置模型保存策略
2020/06/18 Python
css3教程之倾斜页面
2014/01/27 HTML / CSS
分享一个页面平滑滚动小技巧(推荐)
2019/10/23 HTML / CSS
Nike挪威官网:Nike.com (NO)
2018/11/26 全球购物
农业项目建议书
2014/08/25 职场文书
教师师德师风整改措施
2014/10/24 职场文书
2019XX公司员工考核管理制度!
2019/08/07 职场文书
Java使用Unsafe类的示例详解
2021/09/25 Java/Android
Vue的过滤器你真了解吗
2022/02/24 Vue.js
python的html标准库
2022/04/29 Python
聊聊配置 Nginx 访问与错误日志的问题
2022/05/25 Servers