iT邦幫忙

2023 iThome 鐵人賽

0

v-if的使用在Vue.js2的時還有一些需要注意的地方,因為Vue.js追求提高網頁的效率,所以在data有綁定的情況下預設會重複使用已經存在在data裡面的元素,如果有需要重複利用資料時當然非常方便也有助於提高效率,但如果在同時需要user在同一個template填入兩個輸入框並利用以下程式時,就會產生問題。

  <template v-if="loginType === 'username'">
    <label>Username</label>
    <input placeholder="Enter your username">
  </template>
  <template v-else>
    <label>Email</label>
    <input placeholder="Enter your email address">
  </template>

這樣在實際操作時,雖然是不同的輸入框但內容會在data中被反覆利用,沒辦法做到分開輸入,這時候我們就可以在input中加入key來避免這個問題,像這樣<input placeholder="Enter your username" key="username">
這個問題在Vue.js3裡面已經被修正,不必在input中加上key,而如果是在Vue2中使用這種DOM狀態頻繁更動的可以選擇使用v-show讓它不會產生元素被重複渲染的問題,而v-if的使用更適合不變的條件判斷例如登入操作等。


上一篇
No20: v-show VS v-if
下一篇
No22: v-for列表
系列文
從0開始學習30天可以到什麼程度?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言