vue中input的v-model清空操作
問題來源
寫input組件的時候需求一個清空按鈕,但是如果直接修改prop中父級的傳值會報錯。但是如果不修改父級無法更新值,也會帶來開發(fā)的問題。
解決
v-model 完成大部分?jǐn)?shù)據(jù)雙向綁定
<input type="text" :value="inputValue" @change="$emit('change',$event.target.value)" @blur="$emit('blur',$event.target.value)" @focus="$emit('focus',$event.target.value)" @input ="$emit('input',$event.target.value)" >
四個事件將input的事件傳遞,在父級使用
<g-input v-model="num"></g-input>
但是在清空操作上出現(xiàn)難題,因為無論怎么操作都無法觸發(fā)vue上的數(shù)據(jù)驅(qū)動,簡單清空子組件上的維護(hù)的數(shù)據(jù)是沒有同步到父級上的,這里無疑最佳方案就是單向的數(shù)據(jù)流,讓子組件發(fā)生事件時通知父級,父元素傳值發(fā)生改變,進(jìn)而改變子組件。不過感覺這樣做就違背使用v-model的初衷,但是也沒有辦法了
對要進(jìn)行監(jiān)聽的dom綁定事件
子組件中:
<div @click="clear"> <g-icon></g-icon> </div>
將需要清空數(shù)據(jù)的消息告訴父級
clear(){ this.$emit('inputclear',{clear:''}) }
以上兩種可以合并成
<div @click="$emit('inputclear',{clear:''})"> <g-icon v-if="isClearShow" icon="error" class="clearForInput" ></g-icon> </div>
父級中:
<g-input v-model="num" @inputclear="num = $event.clear"></g-input>
現(xiàn)在就可以了
總結(jié)
以上所述是小編給大家介紹的vue中input的v-model清空操作,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
Vue Element前端應(yīng)用開發(fā)之獲取后端數(shù)據(jù)
這篇文章主要介紹了Vue Element前端應(yīng)用開發(fā)之獲取后端數(shù)據(jù),對vue感興趣的同學(xué),可以參考下2021-05-05vue proxy 的優(yōu)勢與使用場景實現(xiàn)
這篇文章主要介紹了vue proxy 的優(yōu)勢與使用場景實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06Vue-cli assets SubDirectory及PublicPath區(qū)別詳解
這篇文章主要介紹了Vue-cli assets SubDirectory及PublicPath區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08