vue中input的v-model清空操作
問題來源
寫input組件的時(shí)候需求一個(gè)清空按鈕,但是如果直接修改prop中父級(jí)的傳值會(huì)報(bào)錯(cuò)。但是如果不修改父級(jí)無法更新值,也會(huì)帶來開發(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)" >
四個(gè)事件將input的事件傳遞,在父級(jí)使用
<g-input v-model="num"></g-input>
但是在清空操作上出現(xiàn)難題,因?yàn)闊o論怎么操作都無法觸發(fā)vue上的數(shù)據(jù)驅(qū)動(dòng),簡單清空子組件上的維護(hù)的數(shù)據(jù)是沒有同步到父級(jí)上的,這里無疑最佳方案就是單向的數(shù)據(jù)流,讓子組件發(fā)生事件時(shí)通知父級(jí),父元素傳值發(fā)生改變,進(jìn)而改變子組件。不過感覺這樣做就違背使用v-model的初衷,但是也沒有辦法了
對要進(jìn)行監(jiān)聽的dom綁定事件
子組件中:
<div @click="clear"> <g-icon></g-icon> </div>
將需要清空數(shù)據(jù)的消息告訴父級(jí)
clear(){ this.$emit('inputclear',{clear:''}) }
以上兩種可以合并成
<div @click="$emit('inputclear',{clear:''})"> <g-icon v-if="isClearShow" icon="error" class="clearForInput" ></g-icon> </div>
父級(jí)中:
<g-input v-model="num" @inputclear="num = $event.clear"></g-input>
現(xiàn)在就可以了
總結(jié)
以上所述是小編給大家介紹的vue中input的v-model清空操作,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(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清空數(shù)組的幾個(gè)方式(小結(jié))
本文主要介紹了vue清空數(shù)組的幾個(gè)方式,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12vue proxy 的優(yōu)勢與使用場景實(shí)現(xiàn)
這篇文章主要介紹了vue proxy 的優(yōu)勢與使用場景實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06詳解vue-cli 腳手架項(xiàng)目-package.json
本篇文章主要介紹了詳解vue-cli 腳手架項(xiàng)目-package.json,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07Vue-cli assets SubDirectory及PublicPath區(qū)別詳解
這篇文章主要介紹了Vue-cli assets SubDirectory及PublicPath區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08