Vue 中指令 v-show/v-if (条件渲染)的对比与使用

条件渲染 v-show 指令
  • v-show指令:可以控制一个dom的显示隐藏(通过操作dom 的display属性)达到效果;
  • v-show的属性值:
    * 为布尔值true时,对应css样式 display:block;
    * 为布尔值false时,对应css样式 display:none;

代码说明

<div  id="app">
	  <h3> v-show test </h3>
      <p v-show = "showFlag"> v-show指令 </p>
</div>


//js代码
var vm = new Vue({
    el: '#app',
    data: { 
      showFlag: true,
    }
  })

条件渲染 v-if 指令
  • 可以和v-if 同时判断执行还包括 v-else-if,v-else指令,用法原生js条件判断用法相同;
  • 另外v-if 等条件指令:主要是操控一个dom元素的创建与销毁(决定一个元素的存在与否);
  • 可以对 v-if,v-else-if,v-else进行组合,书写,可以简单称为单路分支,双路分支与多路分支;

举例说明一下:

//html代码块
 <div id="app">
    <h3> v-if - 单路分支 </h3>//通过一个指令控制元素的显示
      <p v-if = "ifFlag"> v-if - 指令的单路分支 </p>
    <h3> v-if - 双路分支 </h3>//通过两个指令判断控制元素的显示
      <p v-if = "ifFlag">  双路分支 成立  </p>
      <p v-else> 双路分支不成立 </p>

    <h3> v-if - 多路分支 </h3>//通过多个指令判断控制元素的显示
    <p v-if = " type === 'A'"> A </p>
    <p v-else-if = " type === 'B'"> B </p>
    <p v-else> C </p>
  </div>


//js代码块
<script>
	new Vue({
		el:"#app",
		data:{
		ifFlag:true,
		type:"A";
	})
</script>

//对于代码大家可以通过Vue.js devtools进行在线测试,更直观的理解条件渲染的效果
v-if与v-show总结
从两方面来说明:
  • 1、v-if与v-show的区别

    • v-if 操作的是dom元素( 组件 ) 的创建或是销毁
    • v-show 操作的是dom元素的display属性
    • v-if可以有多种使用形式: 单路分支, 多路分支, 双路分支
    • v-show 只能写一个单路形式
  • 2、项目中如何选择使用:

    • 一般来说,v-if 有更高的切换开销(元素的创建与销毁),而 v-show 有更高的初始渲染开销(display属性控制元素的显示与消失)。
    • 因此,如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好。
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值