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 showModalDialog,open取得父窗口的方法
Mar 10 Javascript
js各种验证文本框输入格式(正则表达式)
Oct 22 Javascript
有关DOM元素与事件的3个谜题
Nov 11 Javascript
基于jquery的textarea发布框限制文字字数输入(添加中文识别)
Feb 16 Javascript
js动态创建表格,删除行列的小例子
Jul 20 Javascript
javascript数组克隆简单实现方法
Dec 16 Javascript
AngularJS使用angular-formly进行表单验证
Dec 27 Javascript
详解javascript的变量与标识符
Jan 04 Javascript
javascript中递归的两种写法
Jan 17 Javascript
JS实现的模仿QQ头像资料卡显示与隐藏效果
Apr 07 Javascript
vue 父组件调用子组件方法及事件
Mar 29 Javascript
微信小程序实现日历小功能
Nov 18 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蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
2014/09/29 PHP
thinkphp项目部署到Linux服务器上报错“模板不存在”如何解决
2016/04/27 PHP
PHP7 echo和print语句实例用法
2019/02/15 PHP
window.location.hash 使用说明
2010/11/08 Javascript
事件冒泡是什么如何用jquery阻止事件冒泡
2013/03/20 Javascript
js实现无需数据库的县级以上联动行政区域下拉控件
2013/08/14 Javascript
JQuery为页面Dom元素绑定事件及解除绑定方法
2014/04/23 Javascript
jQuery实现的经典滑动门效果
2015/09/22 Javascript
JS判断当前页面是否在微信浏览器打开的方法
2015/12/08 Javascript
javascript实现不同颜色Tab标签切换效果
2016/04/27 Javascript
JS+Canvas实现的俄罗斯方块游戏完整实例
2016/12/12 Javascript
canvas实现图像截取功能
2017/02/06 Javascript
详解webpack2+node+react+babel实现热加载(hmr)
2017/08/24 Javascript
JS简单实现查看文档创建日期、修改日期和文档大小的方法示例
2018/04/08 Javascript
AngularJs1.x自定义指令独立作用域的函数传入参数方法
2018/10/09 Javascript
[05:31]干嘛呢兄弟!DOTA2 TI9语音轮盘部分出处
2019/05/14 DOTA
Python打包文件夹的方法小结(zip,tar,tar.gz等)
2016/09/18 Python
Python简单删除列表中相同元素的方法示例
2017/06/12 Python
python爬取足球直播吧五大联赛积分榜
2018/06/13 Python
python中的变量如何开辟内存
2018/06/26 Python
Python脚本修改阿里云的访问控制列表的方法
2019/03/08 Python
详解python深浅拷贝区别
2019/06/24 Python
python 逆向爬虫正确调用 JAR 加密逻辑
2021/01/12 Python
纯css3无js实现的Android Logo(有简单动画)
2013/01/21 HTML / CSS
农民工创业典型事迹
2014/01/25 职场文书
工程技术员岗位职责
2014/03/02 职场文书
人民教师求职自荐信
2014/03/12 职场文书
酒店仓管员岗位职责
2014/04/28 职场文书
服务员岗位职责范本
2015/04/09 职场文书
Python利器openpyxl之操作excel表格
2021/04/17 Python
html+css实现赛博朋克风格按钮
2021/05/26 HTML / CSS
centos8安装nginx1.9.1的详细过程
2021/08/02 Servers
动画「半妖的夜叉姬」新BD特典图公开
2022/03/22 日漫
Consul在linux环境的集群部署
2022/04/08 Servers
Ubuntu安装Mysql+启用远程连接的完整过程
2022/06/21 Servers