切换有问题
代码
?<!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 > |
效果展示
存在问题
为什么会出现这个问题呢?
这是因为Vue在进行DOM渲染时,出于性能考虑,会尽可能的复用已经存在的元素,而不是重新创建新的元素。
在上面的案例中,Vue内部会发现原来的input元素不再使用,直接作为else中的input来使用了。
解决方案
完美版登录小案例
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 > |
效果展示
到此,关于“vue用户登录切换实现及常见问题如何处理”的学习就结束了,希望能够解决大家的疑惑,另外大家动手实践也很重要,对大家加深理解和学习很有帮助。如果想要学习更多的相关知识,欢迎关注群英网络,小编每天都会给大家分享实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
长按识别二维码并关注微信
更方便到期提醒、手机管理