Vue.js用Key值来管理可复用元素

Vue 会尽可能高效地渲染元素,通常会复用已有元素而不是从头开始渲染。这么做除了使 Vue 变得非常快之外,还有其它一些好处。

1.那么在上面的代码中切换type将不会清除用户已经输入的内容。因为两个模板使用了相同的元素,input不会被替换掉——仅仅是替换了它的placeholder

<body>
<div id="yk3">
    <div v-if="type==='userName'">
        <lable>UserName</lable>
        <input placeholder="please enter userName">
    </div>
    <div v-else="type==='password'">
        <label>Password</label>
        <input placeholder="please enter password">
    </div>
    <button v-on:click="change">change</button>
</div>
<script>
    new Vue({
        el:"#yk3",
        data:{
            type:"userName"
        },
        methods:{
            change:function () {
                return this.type==="userName"?this.type="password":this.type="userName"
            }
        }
    })
</script>
</body>

运行结果:


2.使用key给input一个唯一值,每次切换时,输入框都将被重新渲染。

<body>
<div id="yk4">
    <div v-if="type==='userName'">
        <lable>UserName</lable>
        <input placeholder="please enter userName" key="userName">
    </div>
        <div v-else="type==='password'">
            <label>Password</label>
            <input placeholder="please enter password" key="password">
        </div>
        <button v-on:click="change">change</button>
</div>
<script>
    new Vue({
        el:"#yk4",
        data:{
          type:"userName"
        },
        methods:{
            change:function () {
               return this.type==="userName"?this.type="password":this.type="userName"
            }
        }
    })
</script>
</body>

运行结果:


  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值