vue条件渲染

1. v-if

通过判断条件来决定自身所在的标签是否在页面结构中存在或消

,它会直接修改dom标签元素。决定整dom标签元素在页面结构

中的存在。

写法:

(1)v-if=“表达式”

(2)v-else-if=”表达式“

(3)v-else=”表达式“

**适用于:**切换频率较低的场景

**特点:**不展示的DOM元素直接被移除

**注意:**v-if可以和:v-else-if、v-else一起使用,但要求结构不能被”打断“

使用v-if做条件渲染 :

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>条件渲染</title>
    <!--    引入vue-->
    <script type="text/javascript" src="/excise/src/vue2.0/daima/js/vue.js"></script>
</head>
<body>
<!--准备一个容器-->
<div id="root">
    <h2>当前的n值是:{{n}}</h2>
    <button @click="n++">点我n+1</button>
    
    <!--  使用v-if做条件渲染 -->
        <h2 v-if="false">欢迎来到{{name}}</h2>
     <!--  v-if语句中值可以为表达式 -->
        <h2 v-if="1===1">欢迎来到{{name}}</h2>
</div>

<script type="text/javascript">
    Vue.config.productionTip = false //阻止vue在启动时生成提示

    const vm = new Vue({
        el: "#root",
        data: {
            name: "尚硅谷",
            n: 0
        }
    })
</script>
</body>
</html>

使用v-if渲染< h2 >元素 if里面的值为 false 条件不成立 所以元素不渲染在页面中

v-else-if 和 v-else

在条件判断中还有v-else-if 和 v-else 它们的用法与原生的if else大致相同

在if表达式中的条件不成立 则继续判断else后面的条件 满足条件之后执行渲染

<body>
<!--准备一个容器-->
<div id="root">
    <h2>当前的n值是:{{n}}</h2>
    <button @click="n++">点我n+1</button>
    <!--  v-else-if和v-else   -->
      <div v-if="n===1">div1</div>
      <div v-else-if="n===1">div2</div>
      <div v-else-if="n===3">div3</div>
      <div v-else>没有啦</div>

        <!--  v-if与v-else-if  -->
       <!-- <template v-if="n===1">
            <h2>div1</h2>
            <h2>div2</h2>
            <h2>div3</h2>
        </template>-->
</div>

<script type="text/javascript">
    Vue.config.productionTip = false //阻止vue在启动时生成提示

    const vm = new Vue({
        el: "#root",
        data: {
            name: "尚硅谷",
            n: 0
        }
    })
</script>
</body>

2. v-show

v-show:通过条件判断标签内元素内容是否在页面当中显示,但是

本身的dom标签结构是已经渲染到页面结构当中的,只是隐藏内

容,即:将当前的标签样式设置为display:none

**写法:**v-show=”表达式“

**适用于:**切换频率较高的场景

**特点:**不展示的DOM元素未被移除,仅仅是使用样式隐藏掉

v-show与v-if用法相似,只是v-if不满足条件就不渲染元素,而v-show是渲染了所有元素和条件来控制元素是否显示

示例:

<body>
<!--准备一个容器-->
<div id="root">
    <h2>当前的n值是:{{n}}</h2>
    <button @click="n++">点我n+1</button>
   <!--  使用v-show做条件渲染 -->
    <h2 v-show="false">欢迎来到{{name}}</h2>
    <h2 v-show="1===1">欢迎来到{{name}}</h2>
</div>

<script type="text/javascript">
    Vue.config.productionTip = false //阻止vue在启动时生成提示

    const vm = new Vue({
        el: "#root",
        data: {
            name: "尚硅谷",
            n: 0
        }
    })
</script>
</body>

3.备注

使用v-if的时候,元素可能无法获取到,而使用v-show一定可以获取到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值