您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)使用vue怎么實現(xiàn)一個用戶登錄切換功能,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
Vue具體輕量級框架、簡單易學(xué)、雙向數(shù)據(jù)綁定、組件化、數(shù)據(jù)和結(jié)構(gòu)的分離、虛擬DOM、運行速度快等優(yōu)勢,Vue中頁面使用的是局部刷新,不用每次跳轉(zhuǎn)頁面都要請求所有數(shù)據(jù)和dom,可以大大提升訪問速度和用戶體驗。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="app"> <span v-if="isUser"> <label for="username">用戶賬號</label> <input type="text" id="username" placeholder="用戶賬號"> </span> <span v-else> <label for="email">用戶郵箱</label> <input type="text" id="email" placeholder="用戶郵箱"> </span> <button @click="isUser = !isUser">切換類型</button> </div> <script src="../js/vue.js"></script> <script> const app = new Vue({ el: '#app', data: { isUser: true } }) </script> </body> </html>
效果展示
存在問題
如果我們在有輸入內(nèi)容的情況下,切換了類型,我們會發(fā)現(xiàn)文字依然顯示之前的輸入的內(nèi)容。
但是按道理講,我們應(yīng)該切換到另外一個input元素中了。
在另一個input元素中,我們并沒有輸入內(nèi)容。
為什么會出現(xiàn)這個問題呢?
這是因為Vue在進(jìn)行DOM渲染時,出于性能考慮,會盡可能的復(fù)用已經(jīng)存在的元素,而不是重新創(chuàng)建新的元素。
在上面的案例中,Vue內(nèi)部會發(fā)現(xiàn)原來的input元素不再使用,直接作為else中的input來使用了。
解決方案
給對應(yīng)的input添加key
保證key的不同
完美版登錄小案例
input里面添加不同的key
代碼
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="app"> <span v-if="isUser"> <label for="username">用戶賬號</label> <input type="text" id="username" placeholder="用戶賬號" key="username"> </span> <span v-else> <label for="email">用戶郵箱</label> <input type="text" id="email" placeholder="用戶郵箱" key="email"> </span> <button @click="isUser = !isUser">切換類型</button> </div> <script src="../js/vue.js"></script> <script> const app = new Vue({ el: '#app', data: { isUser: true } }) </script> </body> </html>
效果展示
看完上述內(nèi)容,你們對使用vue怎么實現(xiàn)一個用戶登錄切換功能有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。