vue入门:(条件渲染)

  • v-if
  • v-show
  • v-else

一、v-if:生成或者移出一个元素

 1 <div id="example">
 2     <button v-on:click="ifEvent">点击</button>
 3     <p v-if="greeting">hello</p>
 4 </div>
 5 <script>
 6     var vm = new Vue({
 7         el:‘#example‘,
 8         data:{
 9             greeting:true
10         },
11         methods:{
12             ifEvent(){
13                 this.greeting = !this.greeting;
14             }
15         }
16     });
17 </script>

v-if表达式采用boolean值切换元素生成与删除,由于节点生成和删除会有较高的性能消耗,如果需要一次生成和删除多个元素时,可以采用<template>元素作为包装元素,在包装元素上使用v-if指令,最终的渲染结果不会包含包装元素,看示例:

 1 <div id="example">
 2     <button v-on:click="ifEvent">点击</button>
 3     <div>
 4         <template v-if="greeting">
 5             <h2>我是标题</h2>
 6             <p>我是简介</p>
 7             <p>我是内容</p>
 8         </template>
 9     </div>
10 </div>
11 <script>
12     var vm = new Vue({
13         el:‘#example‘,
14         data:{
15             greeting:true
16         },
17         methods:{
18             ifEvent(){
19                 this.greeting = !this.greeting;
20             }
21         }
22     });
23 </script>

渲染结果:

由于v-if采用的是生成和删除节点,除非在一些购物车等特定应用场景下需要生成和删除节点,多数情况下的需求是只需要做显示和隐藏,所以这时候就没有必要删除节点,仅仅只需要对节点操作display样式实现即可,所以接下来介绍v-show指令。

二、v-show:展示或隐藏一个元素

 1 <div id="example">
 2     <button v-on:click="ifEvent">点击</button>
 3     <div v-show="greeting">hello</div>
 4 </div>
 5 <script>
 6     var vm = new Vue({
 7         el:‘#example‘,
 8         data:{
 9             greeting:true
10         },
11         methods:{
12             ifEvent(){
13                 this.greeting = !this.greeting;
14             }
15         }
16     });
17 </script>

通过v-show来实现展示和隐藏,实际上就是操作元素的display的样式属性,比如示例中的div在被隐藏是的元素结构是:

然需要注意的是v-show不支持<template>语法。

vi-if是惰性的,如果在初始渲染时条件为假则什么都不做,只有在条件为真时才会编局部编译渲染,并且编译会被缓存起来。

既然有v-if的存在,v-else怎么能少呢?

三、v-else

v-else指令的语法含义跟javascript中的else一致,必须跟v-if配合使用,但不能与show一起使用。

 1 <div id="example">
 2     <button v-on:click="ifEvent">点击</button>
 3     <div v-if="greeting">我是会员</div>
 4     <div v-else="greeting">我是超级会员</div>
 5 </div>
 6 <script>
 7     var vm = new Vue({
 8         el:‘#example‘,
 9         data:{
10             greeting:true
11         },
12         methods:{
13             ifEvent(){
14                 this.greeting = !this.greeting;
15             }
16         }
17     });
18 </script>

如果是v-show也需要实现切换的话可以采用非值来实现,比如上面的v-else可以使用下面这样的方式来实现:

<div v-show="!greeting">我是超级会员</div>

原文地址:https://www.cnblogs.com/ZheOneAndOnly/p/11031076.html

时间: 2024-07-29 14:32:14

vue入门:(条件渲染)的相关文章

Vue的条件渲染详解

Vue的条件渲染 v-if.v-else.v-else-if以及v-show的用法 v-if的渲染方式: 会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建: 只有当条件第一次变为真时,才会开始渲染条件块: 切换开销比v-show高: v-show的渲染方式: 不管初始条件是什么,元素总是会被渲染: 只是简单地基于 CSS 进行切换: v-show的初始渲染开销比v-if高: 如果需要频繁的切换,则使用v-show: 如果运行时条件很少改变,则用v-if: <!DOCTYPE ht

VUE:条件渲染和列表渲染

条件渲染 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <!-- 1.条件渲染指令 v-if v-else 移除标签 v-show 通过样式隐藏 2.比较 v-if 与v-show 如果需要频繁切换 v-show 较好 --> <div id="

【vue】条件渲染 v-if v-else

1.Vue 提供了一种方式来表达“这两个元素是完全独立的,不要复用它们”.只需添加一个具有唯一值的 key 属性即可: <template v-if="loginType === 'username'"> <label>Username</label> <input placeholder="Enter your username" key="username-input"> </templa

vue.js 条件渲染

高清大图下载

【03】Vue 之列表渲染及条件渲染

3.1. 条件渲染 有时候我们要根据数据的情况,决定标签是否进行显示或者有其他动作.最常见的就是,表格渲染的时候,如果表格没有数据,就显示无数据.如果有数据就显示表格数据. Vue帮我们提供了一个v-if的指令,帮助我们完成判断的模板处理. <div id="app"> <h1 v-if="ok">Yes</h1> <h1 v-else>No</h1> </div> <!-- 当ok为tr

vue条件渲染

v-if 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: <!-- Handlebars 模板 --> {{#if ok}} <h1>Yes</h1> {{/if}} 在 Vue.js ,我们使用 v-if 指令实现同样的功能: <h1 v-if="ok">Yes</h1> 也可以用 v-else 添加一个 "else" 块: <h1 v-if="ok"&g

关于vue.js中条件渲染的联系

html: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>条件渲染</title></head><body> <!-- v-if 作为判断条件 如果满足则展示它所附着的元素的内容--> <!-- 除了v-if 还可以配合使用v-else--> <div

Vue#条件渲染

根据不同的条件,响应不同的事件. https://jsfiddle.net/miloer/zed5p1r3/ 可以用template来包装元素,当然浏览器的最终渲染结果不会包含它.我觉得主要用它来自定义模块组件. <template v-if=“msg”><h1>Title</h1><p>Paragraph 1</p><p>Paragraph 2</p></template> 发现个小问题当JS代码有误的时候,

[vue]vue条件渲染v-if(template)和自定义指令directives

条件渲染: v-if/template <div id="app"> <h1>v-show: display: none</h1> <div v-show="false">yes</div> <!--<div v-else>no</div>--> <h1>v-for: 判断1</h1> <div v-if="false"&

浅析Vue.js 中的条件渲染指令

1 应用于单个元素 Vue.js 中的条件渲染指令可以根据表达式的值,来决定在 DOM 中是渲染还是销毁元素或组件. html: <div id="app"> <p v-if="type===1">拌面</p> <p v-else-if="type===2">扁肉</p> <p v-else="type===3">其它</p> </div