我是靠谱客的博主 幽默音响,这篇文章主要介绍Vue语法学习第五课——条件渲染,现在分享给大家,希望可以做个参考。

① v-if 、v-else-if 、v-else

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
1 <div v-if="type === 'A'"> 2 A 3 </div> 4 <div v-else-if="type === 'B'"> 5 B 6 </div> 7 <div v-else-if="type === 'C'"> 8 C 9 </div> 10 <div v-else> 11 Not A/B/C 12 </div>

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

  (2)v-else-if 和 v-else 必须紧跟在 v-if 的元素之后

  用于 <template> 可使用 key 管理可复用的元素:

复制代码
1
2
3
4
5
6
7
8
9
10
11
  <div id="app0"> <template v-if="loginType === 'username'"> <label>Username</label> <input placeholder="Enter your username" key="username-input"> </template> <template v-else> <label>Email</label> <input placeholder="Enter your email address" key="email-input"> </template><br/> <button @click="changeLoginType">{{loginType}}</button> </div>
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var vm = new Vue({ el:"#app0", data:{ loginType : "username" }, methods : { changeLoginType : function(){ if(this.loginType === 'username'){ this.loginType = "emailAddress"; } else{ this.loginType = "username"; } } } });

  此时把这个 <template> 元素当做不可见的包裹元素,并使用v-if 。 最终的渲染结果不包含 <template> 元素。

  Vue 提供了 key 这个属性来表达“这两个元素是完全独立的,不要复用它们”。独立元素的 key 值应是唯一值(不添加key值的label元素仍然会被高效地复用)。

 ② v-show

  v-show 与 v-if 类似,都是用于根据条件展示元素,v-show 用法如下:

复制代码
1
  <h1 v-show="ok">Hello!</h1>

 

   v-show 的元素始终会被渲染并保留在DOM中,其作用只是简单的切换元素的 css 属性的 display。

  注:v-show 不支持 template 也没有对应的 v-else 。

③ v-show 和 v-if 对比

  (1)v-if 会确保在切换过程中,条件块内的事件监听器和子组件适当地被销毁和重建。

      v-if 是惰性的:只有在条件第一次变为真时才会开始渲染条件块。

  (2)v-show 不论条件是否为真,总是会渲染元素,并且在条件的值改变时只做 CSS 的切换。

  (3)v-if 具有更高的切换开销;v-show具有更高的初始渲染开销。

      如果频繁切换应优先选择 v-show ;如果条件几乎不会改变时优先选择 v-if 。

 

转载于:https://www.cnblogs.com/zhuxingqing/p/10561736.html

最后

以上就是幽默音响最近收集整理的关于Vue语法学习第五课——条件渲染的全部内容,更多相关Vue语法学习第五课——条件渲染内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(86)

评论列表共有 0 条评论

立即
投稿
返回
顶部