Vue.js的学习(3)

条件渲染

v-if 所以必须将它添加到一个元素上

<div id="app">
    <p v-if="seen">yes</p>
</div>
//JS
var app=new Vue({
    el:"#app",
    data:{
        seen:true
    }
})

在控制台输入app.seen=false;就可以将元素隐藏

既然有v-if就必须有v-else,当v-if的值为false时,v-else绑定的元素就会比呈现出来

<div id="app">
    <p v-if="seen">yes</p>
    <p v-else>no</p>
</div>
//JS
var app=new Vue({
    el:"#app",
    data:{
        seen:false
    }
})

要是有v-else,就必然有v-else-if

<div id="app">
    <p v-if="seen==='A'">A</p>
    <p v-else-if="seen==='B'">B</p>
    <p v-else-if="seen==='C'">C</p>
    <p v-else>Nothing</p>
</div>
//JS
var app=new Vue({
    el:"#app",
    data:{
        seen:"A"
        //就能看见A
    }
})

用Key管理复用功能

key值的作用就是给元素加上一个唯一值

    </div>
    <div id="app1">
        <template v-if="type==='Email'">
            <label>Email</label>
            <input type="text" placeholder="Enter your Email" key="Email-input">
        </template>
        <template v-if="type==='User'">
            <label>User</label>
            <input type="text" placeholder="Enter your User" key="User-input">
        </template>
        <button @click="{{change()}}">toggle</button>
    </div>
 //JS代码部分
   var app1=new Vue({
        el:"#app1",
        data:{
            type:"Email"
        },
        methods:{
            change:function(){
                if(this.type==="Email"){
                    this.type="User";
                }else{
                    this.type="Email";
                }
            }
        }
    });

在我们没有添加key值的时候,input的placeholder属性并不会被替换掉,这是因为我们的两个模板使用了相同的元素,这个input被复用了

v-show与v-if的区别

  • v-if 是惰性的,只有值为真值的时候才会渲染目标,而v-show只是更改了元素的display特性
  • v-if 是按照条件来渲染的,他会在切换过程中销毁监听器和子组件等等相关的东西
  • v-if切换的开销大于v-showv-show会一直存在DOM树中,而v-if 就不一定了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值