1. 程式人生 > 其它 >vue使用v-if、v-else的複用問題(input體現)

vue使用v-if、v-else的複用問題(input體現)

 1 <body>
 2 
 3   <div id="app">
 4     <span v-if="isChoose">
 5       <label for="username">賬號登入</label>
 6       <input type="text" name="" id="username" placeholder="賬號" key="zh">
 7     </span>
 8     <span v-else>
 9       <label for="email">郵箱登入</label>
10
<input type="text" name="" id="email" placeholder="郵箱" key="yx"> 11 </span> 12 <button @click="btnClick">切換登入型別</button> 13 </div> 14 15 <script src="../ES6/vue.js"></script> 16 <script> 17 const app = new Vue({ 18 data() { 19
return { 20 isChoose: true 21 } 22 }, 23 methods: { 24 btnClick() { 25 this.isChoose = !this.isChoose 26 } 27 } 28 }).$mount('#app') 29 </script> 30 </body>

通過v-if控制的兩種互斥的登入方式,在使用到input表單輸入值後,此時切換登入方式,會存在input中內容不改變

的現象

Vue出於效能的考慮,會盡可能的複用已經存在的元素,而不是建立新的元素。

這種情況下的input沒有刪除後重新建立,而是直接作為else中的input使用

想要解決這種情況,可以在input中加入key