您好,登錄后才能下訂單哦!
問題來源
寫input組件的時候需求一個清空按鈕,但是如果直接修改prop中父級的傳值會報錯。但是如果不修改父級無法更新值,也會帶來開發的問題。
解決
v-model 完成大部分數據雙向綁定
<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>
但是在清空操作上出現難題,因為無論怎么操作都無法觸發vue上的數據驅動,簡單清空子組件上的維護的數據是沒有同步到父級上的,這里無疑最佳方案就是單向的數據流,讓子組件發生事件時通知父級,父元素傳值發生改變,進而改變子組件。不過感覺這樣做就違背使用v-model的初衷,但是也沒有辦法了
對要進行監聽的dom綁定事件
子組件中:
<div @click="clear"> <g-icon></g-icon> </div>
將需要清空數據的消息告訴父級
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>
現在就可以了
總結
以上所述是小編給大家介紹的vue中input的v-model清空操作,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。