vue 使用v-if切換輸入框時導(dǎo)致輸入框的數(shù)據(jù)內(nèi)容沒有清空的問題解決(兩種解決方法)
原由
Vue 會盡可能高效地渲染元素,通常會復(fù)用已有元素而不是從頭開始渲染
場景復(fù)現(xiàn)
如下所示
<template v-if="type === 'name'"> <input placeholder="Enter your name"> </template> <template v-else> <input placeholder="Enter your email address"> </template>
如果代碼中使用上述的進(jìn)行輸入框的切換,在切換時便會發(fā)現(xiàn)輸入框中的內(nèi)容并不會被清空,而是繼續(xù)遺留,僅僅是替換了它的 placeholder
解決方法1(實(shí)測有效)
由此,vue提供一種方式來表示這兩個元素是完全獨(dú)立的,不要復(fù)用它們
,那便是:添加一個具有唯一值的 key 屬性
<template v-if="type === 'name'"> <input placeholder="Enter your name" key="name"> </template> <template v-else> <input placeholder="Enter your email address" key="address"> </template>
如果代碼如下:label元素仍然會被高效地復(fù)用,因?yàn)樗鼈儧]有添加 key 屬性
<template v-if="type === 'name'"> <label>name</label> <input placeholder="Enter your name" key="name"> </template> <template v-else> <label>address</label> <input placeholder="Enter your email address" key="address"> </template>
解決方法2(未實(shí)測)
v-if換成v-show
,只是隱藏控件 , 不是將其銷毀
如果是對加了表單驗(yàn)證的元素進(jìn)行顯示隱藏,當(dāng)使用 v-show 時,元素隱藏了,但是表單驗(yàn)證依舊存在,valid 永遠(yuǎn)返回 false
到此這篇關(guān)于vue 使用v-if切換輸入框時導(dǎo)致輸入框的數(shù)據(jù)內(nèi)容沒有清空的問題解決的文章就介紹到這了,更多相關(guān)vue 使用v-if切換輸入框內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Vue3與免費(fèi)滿血版DeepSeek實(shí)現(xiàn)無限滾動+懶加載+瀑布流模塊及優(yōu)化過程
在進(jìn)行非完全標(biāo)準(zhǔn)化數(shù)據(jù)的可視化展示時,瀑布流是一種經(jīng)常被采用的展示方法,瀑布流能夠有效地將不同大小規(guī)格的內(nèi)容以一種相對規(guī)整的方式呈現(xiàn)出來,本文給大家介紹了基于Vue3與免費(fèi)滿血版DeepSeek實(shí)現(xiàn)無限滾動+懶加載+瀑布流模塊,需要的朋友可以參考下2025-03-03vue + socket.io實(shí)現(xiàn)一個簡易聊天室示例代碼
本篇文章主要介紹了vue + socket.io實(shí)現(xiàn)一個簡易聊天室示例代碼,具有一定的參考價值,有興趣的可以了解一下。2017-03-03vue vantUI tab切換時 list組件不觸發(fā)load事件的問題及解決方法
這篇文章主要介紹了vue vantUI tab切換時 list組件不觸發(fā)load事件的解決辦法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02在vue中獲取微信支付code及code被占用問題的解決方法
這篇文章主要介紹了在vue中獲取微信支付code及code被占用問題的解決方法。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-04-04Vue利用路由鉤子token過期后跳轉(zhuǎn)到登錄頁的實(shí)例
下面小編就為大家?guī)硪黄猇ue利用路由鉤子token過期后跳轉(zhuǎn)到登錄頁的實(shí)例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10