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 相关文章推荐
可缩放Reloaded-一个针对可缩放元素的复用组件
Mar 10 Javascript
javascript 节点排序 2
Jan 31 Javascript
弹出层之1:JQuery.Boxy (一) 使用介绍
Oct 06 Javascript
JavaScript初学者建议:不要去管浏览器兼容
Feb 04 Javascript
jquery选择checked在ie8普通模式下的问题
Feb 12 Javascript
JavaScript中的Math.LN2属性用法详解
Jun 12 Javascript
JS实现的通用表单验证插件完整实例
Aug 20 Javascript
JS 拼凑字符串的简单实例
Sep 02 Javascript
AngularJS与后端php的数据交互方法
Aug 13 Javascript
VUE项目初建和常见问题总结
Sep 12 Javascript
vue开发简单上传图片功能
Jun 30 Javascript
使用Typescript开发微信小程序的步骤详解
Jan 12 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/06/12 PHP
PHP chmod 函数与批量修改文件目录权限
2010/05/10 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
php_pdo 预处理语句详解
2016/11/21 PHP
JavaScript 类的定义和引用 JavaScript高级培训 自定义对象
2010/04/27 Javascript
在Javascript里访问SharePoint列表数据的实现方法
2011/05/22 Javascript
简短几句jquery代码的实现一个图片向上滚动切换
2011/09/02 Javascript
一个JQuery操作Table的代码分享
2012/03/30 Javascript
jquery实现table鼠标经过变色代码
2013/09/25 Javascript
JavaScript使用Replace进行字符串替换的方法
2015/04/14 Javascript
学习javascript的闭包,原型,和匿名函数之旅
2015/10/18 Javascript
js返回顶部实例分享
2016/12/21 Javascript
原JS实现banner图的常用功能
2017/06/12 Javascript
微信小程序实现YDUI的ScrollNav组件
2018/02/02 Javascript
解决angularjs前后端分离调用接口传递中文时中文乱码的问题
2018/08/13 Javascript
vue cli3 调用百度翻译API翻译页面的实现示例
2019/09/13 Javascript
九步学会Python装饰器
2015/05/09 Python
Python的Django框架中if标签的相关使用
2015/07/15 Python
浅谈python socket函数中,send与sendall的区别与使用方法
2017/05/09 Python
python实现人人自动回复、抢沙发功能
2018/06/08 Python
Flask框架Flask-Principal基本用法实例分析
2018/07/23 Python
python 列表递归求和、计数、求最大元素的实例
2018/11/28 Python
自定义django admin model表单提交的例子
2019/08/23 Python
Python time库基本使用方法分析
2019/12/13 Python
Django URL参数Template反向解析
2020/11/24 Python
Matplotlib配色之Colormap详解
2021/01/05 Python
CSS3实现复选框动画特效示例代码
2016/09/27 HTML / CSS
HTML5学习笔记之History API
2015/02/26 HTML / CSS
html5的pushstate以及监听浏览器返回事件的实现
2020/08/11 HTML / CSS
世界上获奖最多的手机镜头:Olloclip
2018/03/03 全球购物
RealTek面试题
2016/06/28 面试题
生物专业个人自荐信范文
2013/11/29 职场文书
学校安全教育制度
2014/01/31 职场文书
财产公证书格式
2014/04/10 职场文书
党的群众路线教育实践活动对照检查材料思想汇报
2014/09/19 职场文书
无违反计划生育证明格式
2015/06/24 职场文书