Time: 20190911

v-if + v-else配合使用

在HTML模板中引入控制逻辑,使得编写前端代码更加灵活。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><script src="https://cdn.jsdelivr.net/npm/vue"></script><!-- <script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script> 生产环境 -->
</head>
<body><div id="app"><p v-if="hours < 12">早上好!</p><p v-if="hours >= 12 && hours < 18">中午好!</p><p v-if="hours >= 18">下午好!</p><p>Hello {{ greetee }} !</p><p v-if="path==='/">处于首页</p><p v-else>正处于{{ path }}</p></div><script>var app = new Vue({el: '#app',data: {hours: new Date().getHours(),greetee: 'world',path: location.pathname,},})</script>
</body>
</html>

v-if和v-else出现在相邻的位置上。

v-if和v-show

简单来说,v-if指令判断结果为False,则不会显示DOM元素,显示或者不显示的方式是插不插入真实的DOM元素。

而v-show则是通过CSS样式来控制元素的显示和隐藏。

<div v-if="true">one</div>
<div v-if="false">two</div>
⇒ 输出:<div>one<div><div v-show="true">one</div>
<div v-show="false">two</div>
⇒ 输出:
<div>one<div>
<div style="display: none">two<div>

更直白一点说就是,没经过v-if判断的,都没有机会生成HTML代码,没经过v-show判断的,代码还是会生成的,甚至生成的还更复杂,带上了CSS样式控制。

现实使用时,用v-if更加,因为有些情况下,用的元素判断,该元素不存在,不生成HTML比较好,但用v-show会去访问不存在元素的属性,就会报Bug。

但是v-if的开销比v-show要大,因为它会频繁操作DOM树。

尤其是在频繁切换显示的场景下,用v-show更好。

模板循环:v-for指令

显然这是很好的遍历手段,比如遍历数组,对象等。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><script src="https://cdn.jsdelivr.net/npm/vue"></script><!-- <script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script> 生产环境 -->
</head>
<body><div id="app"><ul><li v-for="dog in dogs">{{ dog }}</li> </ul></div><script>var app = new Vue({el: '#app',data: {dogs: ['Rex', 'Rover', 'Henrietta', 'Alan']},created() {// 应用启动时执行console.log("应用启动...")}})</script>
</body>
</html>

遍历数组显示效果

下面是遍历对象的写法:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><script src="https://cdn.jsdelivr.net/npm/vue"></script><!-- <script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script> 生产环境 -->
</head>
<body><div id="app"><ul><li v-for="(rent, city) in avgRent">{{ city }}的平均租金为{{ rent }}</li> </ul></div><script>var app = new Vue({el: '#app',data: {avgRent: {London: '$1650',Paris: '$730',NYC: '$3680'}},created() {// 应用启动时执行console.log("应用启动...")}})</script>
</body>
</html>

显示效果:

属性绑定:v-bind

v-bind的作用是,将一个值绑定到HTML属性上。

比如:

<body><div id="app"><button v-bind:type="buttonType">Test Button</button></div><script>var app = new Vue({el: '#app',data: {buttonType: 'submit'},created() {// 应用启动时执行console.log("应用启动...")}})</script>
</body>

这段代码里,v-bind是指令的名称,type是指令的参数,在本例中是属性的名称,将给定的变量绑定到这个属性即可,buttonType是在data中定义的变量。

不仅是type,还可以绑定到disabled, checked等属性名称上。

这种是完整的写法,由于数据绑定是非常普遍的操作,Vue提供了简写法,只需要在参数前面加冒号即可。

<button :type="buttonType">Test Button with no v-vind </button>

效果是一样的。

两种写法取一种即可,保持代码风格的统一很重要。

END.

Vue之v-if, v-else, v-show, v-for, v-bind相关推荐

  1. oracle v$access执行很慢,Oracle bug之v$access

    今天在客户数据库查询一表格的访问情况,结果系统出现 引用 SQL> / EVENT ------------------------------------------------------- ...

  2. 【归档】证明V的三个子空间的并是V的子空间,当且仅当其中一个子空间包含另外两个子空间

    Note: 旧的wordpress博客弃用,于是将以前的笔记搬运回来. Foreword: 标记,目前没有完成这道题,想出证明后会进行完善. Question: Prove that the unio ...

  3. 【实用】几个实用的webstorm、IDEA编辑器窗口快捷键设置,Alt+V垂直复制当前窗口,Alt+Shift+V将当前窗口复制到另一边的分割窗口显示,Alt+Shift+M移动当前活动窗口到另一边

    Alt+V垂直复制当前窗口 Alt+Shift+V将当前窗口复制到另一边的分割窗口显示,Alt+Shift+M移动当前活动窗口到另一边

  4. matlab的v带优化设计,基于遗传算法及MATLAB的V带传动优化设计

    在实际生产中,人们总希望机械传动装置的主要参数.尺寸既能获得最优解,又能同时满足传动装置在工作中的可靠性要求.可靠性优化设计是将可靠性理论引入优化设计中,这种方法实质上是在决策集(性能.寿命和成本要求 ...

  5. 【归档】证明V的两个子空间的并是V的子空间当且仅当其中一个子空间包含另一个子空间

    Note: 旧的wordpress博客弃用,于是将以前的笔记搬运回来. Question: Prove that the union of two subspaces of V V V is a su ...

  6. Vue的基础认知一---构建环境/v指令的使用

    大家新年好啊,不对,今天是情人节呢,哈哈哈,祝大家节日快乐,你们是不是都出去约约约了啊,好吧,你们都去玩吧,我在家码代码,汗~讲真,这大过年的实在是不愿意学习啊,可是眼看着好久没写博文了,心里有点过意 ...

  7. 关于v$process与v$session中process的理解

    v$session有个process字段,V$PROCESS有个SPID字段,这两个字段是不是一个意思呢?是不是都代表会话的操作系统进程呢? 官方文档上的解释: SPID      VARCHAR2( ...

  8. 【UVA】11991 Easy Problem from Rujia Liu? (整数v第k次出现在什么位置)

    https://vjudge.net/problem/UVA-11991 题目大意:就是给你一个序列,然后给出k和v,看整数v第k次出现在该序列的什么位置,没有的话就输出0 结构体(略复杂): #in ...

  9. 用Python分析5000+抖音大V,粉丝最喜欢的视频类型是它

    作者 | 小F 来源 | 法纳斯特 头图 | CSDN下载自视觉中国 最近,小F在知乎上看到一个关于抖音的问题. 里面提到了,目前我国人均每天刷短视频110分钟. 看这数据,看来小F又被平均了. 不过 ...

  10. 操作系统信号量与P、V操作 初步认识整理

    初步接触,若有不足之处,请各位不吝赐教.谢谢! 首先介绍:信号量 信号量包括整型信号量.结构型信号量.二值信号量. ① 整型信号量 最初,将信号量定义为一个共享的整型量,它保存可供使用的唤醒数目.如果 ...

最新文章

  1. 如何在Form中使用键弹性域(Key Flexfield)
  2. 在MySQL查询山东省男生信息_mysql查询语句
  3. 章节七、4-Sets
  4. 关于假冒网站仿冒网易云信官网相关情况的声明
  5. thinkpad t460p恢复原厂系统以及设置的方式
  6. PHP 加密用户密码 How to store passwords safely with PHP and MySQL
  7. 【C++】 Boost 库编译技巧总结
  8. Hello TensorFlow
  9. Linux之vi三种模式常用操作的学习
  10. CECC2018赛季收官站我国×××手夺得年度总冠军
  11. linux c 库依赖
  12. c/c++成长之捷径 C/C++学习资料大全
  13. 手机变游戏机 N97/5800的GBA模拟器vBagx教程
  14. 【自然语言处理】韩语基础与入门(语法篇)
  15. uva 1589 - Xiangqi(象棋)
  16. WRF学习笔记二:WRF-chem简单入门运行指南
  17. Android客户端与PC服务器通过socket进行交互实例
  18. 支持webrtc的摄像头
  19. Linux系统安全基础
  20. NOIP 陶陶摘苹果

热门文章

  1. deeplab v3+---Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation
  2. linux ubuntu内核安装位置,在Ubuntu中安装或升级内核 linux kernel
  3. C语言为运算表达式添加括号,读书笔记-c语言-运算符与表达式
  4. 河南理工大学计算机专业几本,2018河南理工大学是几本 是一本还是二本
  5. ansible 建 kubernetes 证书签名请求_Java中的微信支付(2):API V3 微信平台证书的获取与刷新...
  6. java有没有友元函数_c++中友元函数理解与使用
  7. python里eval和input组合使用_python中eval()函数和input()函数用法解析
  8. oracle crm客户关系管理资料下载_悟空CRM:使用CRM系统进行客户关系管理的要点...
  9. 2018厦门大学计算机技术分数线,厦大录取分数线2018 各省最新录取情况
  10. Linux中的/ dev / null