(1)v-if条件渲染

v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回 truthy 值的时候被渲染。

可以用 v-else 添加一个“else 块”:

①表达式

    <div id="area1">
<p v-if="1>2">{{message1}}</p>
<p v-else>{{message2}}</p>
</div>
<script type="text/javascript">
var area1 = new Vue({
el:"#area1",
data:{
message1:"满足条件",
message2:"不满足条件"
}
})
</script>

②属性值

    <div id="area1">
<p v-if="status">{{message1}}</p>
<p v-else>{{message2}}</p>
</div>
<script type="text/javascript">
var area1 = new Vue({
el:"#area1",
data:{
message1:"满足条件",
message2:"不满足条件",
status:false
}
})
</script>

③在 <template> 元素上使用 v-if 条件渲染分组(待验证

因为 v-if 是一个指令,所以必须将它添加到一个元素上。但是如果想切换多个元素呢?此时可以把一个 <template> 元素当做不可见的包裹元素,并在上面使用 v-if。最终的渲染结果将不包含 <template> 元素。

<template v-if="ok">
<h1>Title</h1>
<p>Paragraph 1</p>
<p>Paragraph 2</p>
</template>

(2)v-else-if

v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:

    <div id="area1">
<p v-if="number<2">{{message1}}</p>
<p v-else-if="number<3">{{message2}}</p>
<p v-else="number<4">{{message3}}</p>
</div>
<script type="text/javascript">
var area1 = new Vue({
el:"#area1",
data:{
message1:"情况1",
message2:"情况2",
message3:"情况3",
number:3
}
})
</script>

注意:v-else 元素必须紧跟在带 v-if 或者 v-else-if 的元素的后面,否则它将不会被识别。

(3)用 key 管理可复用的元素(待验证

Vue 会尽可能高效地渲染元素,通常会复用已有元素而不是从头开始渲染。这么做除了使 Vue 变得非常快之外,还有其它一些好处

(4)v-show

v-show也可以根据条件展示元素,与v-if用法大致

    <h1 id="showH1" v-show="status">
v-show显隐控制
</h1>
var showH1 = new Vue({
el:"#showH1",
data:{
status:false
}
})

效果:在页面未展示出来display:none

(6)v-show----VS----v-if

从上面案例可以看出,v-show的元素始终会被渲染并保留在 DOM 中。v-show 只是简单地切换元素的 CSS 属性 display。而v-if则是未经过渲染阶段。

v-if 是“真正”的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建。v-if 也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。

②相比之下,v-show 就简单得多——不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 进行切换。

③总结:v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销。

因此,1、如果需要非常频繁地切换,则使用 v-show 较好;2、如果在运行时条件很少改变,则使用 v-if 较好。

(7) v-if 和 v-for

不推荐同时使用v-if 和 v-for。当 v-if 与 v-for 一起使用时,v-for 具有比 v-if 更高的优先级。

.

vue基础---条件渲染的更多相关文章

  1. vue基础——条件渲染

    一.v-if 1.1.v-if,v-else 在字符串模板中,比如Handlebars,我们得像这样写一个条件块: HTML <!-- Handlebars 模板 --> {{#if ok ...

  2. vue笔记-条件渲染

    条件渲染 1:指令v-if单独使用和结合v-else //单独使用 <h1 v-if="ok">Yes</h1> //组合使用 <h1 v-if=&q ...

  3. vue的条件渲染和列表渲染介绍

    一.条件渲染 1.v-if语句 <div v-if="seen">hahahah</div> <!-- v-if插入或者删除元素的指令 --> ...

  4. 前端框架之Vue(5)-条件渲染

    v-if 在字符串模板中,比如 Django Template语法中,我们得像这样写一个条件块: <!-- Handlebars 模板 --> {%if 1%} <h1>Yes ...

  5. Vue v-if条件渲染

    1.简单的v-if指令,代码如下 <!DOCTYPE html> <html> <head lang="en"> <meta charse ...

  6. VUE:条件渲染和列表渲染

    条件渲染 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <titl ...

  7. vue.js条件渲染 v-if else-if v-for

    v-if: 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: {{#if ok}} <!-- Handlebars 模板 --> <h1>Yes</ ...

  8. Vue.js 条件渲染 v-if、v-show、v-else

    v-if  v-if 完全根据表达式的值在DOM中生成或移除一个元素.如果v-if表达式赋值为false,那么对应的元素就会从DOM中移除:否则,对应元素的一个克隆将被重新插入DOM中. 1 2 3 ...

  9. 第六十三篇:Vue的条件渲染与列表渲染

    好家伙, 1.条件渲染v-if 1.1.v-if基本使用 <body> <div id="app"> <p v-if="flag" ...

随机推荐

  1. scu oj 4442 Party(2015年四川省acm程序设计竞赛)

    Party n frogs are invited to a tea party. Frogs are conveniently numbered by 1,2,-,n. The tea party ...

  2. SpringMVC学习指南-前言

    SpringMVC是Spring框架中用于Web应用快速开发的一个模块. SpringMVC基于Spring框架.Servlet和JSP. ------------------------------ ...

  3. java jxl读取excel中Date类型

    Workbook book = Workbook.getWorkbook(excel); Sheet sheet = book.getSheet(0); int clos = sheet.getCol ...

  4. [办公应用]如何设置IE打印时的默认页边距,并设置纸张为横向(会计票据打印)

    最近一个做会计的同事询问,如何将IE打印时的默认页边距更改,并且每次都要是横向的纸张. 这是因为她已经测试好纸张的大小,并据此调整好了页边距.可惜的是下一次打印时,又要重新调整一遍. 经过研究,方法如 ...

  5. 【T^T】【周赛】第一周周赛——欢迎16级的新同学

    借光光,YZC的福气(今天拿到Rank1),本来还可以更好的,前面吃M去了,ABC都很晚切,而且异常兴奋,结果WA了好多发,但还是由于水题看题不清,分析不清导致的 A Home W的数学 Descri ...

  6. 洛谷 P2615 神奇的幻方 —— 模拟

    题目:https://www.luogu.org/problemnew/show/P2615 直接按题意模拟即可; 用 Emacs 做的第一道题! 代码如下: #include<iostream ...

  7. uva10655

    Given the value of a+b and ab you will have to find the value of a n + b n Input The input file cont ...

  8. Akka源码分析-Akka-Streams-GraphStage

    上一篇博客中我们介绍了ActorMaterializer的一小部分源码,其实分析的还是非常简单的,只是初窥了Materializer最基本的初始化过程及其涉及的基本概念.我们知道在materializ ...

  9. webpack+vue-cli中proxyTable配置接口地址代理详细解释

    在vue-cli项目中config目录里面的index.js配置接口地址代理,详细解释如下图所示:

  10. 例题 5-1 STL

    Raju and Meena love to play with Marbles. They have got a lot of marbles with numbers written on the ...