vant-ui組件調(diào)用Dialog彈窗異步關(guān)閉操作
需求描述:
需求描述:官方文檔又是組件調(diào)用方式,又是函數(shù)調(diào)用方式。
我就需要一個(gè)很簡單的:點(diǎn)擊操作彈窗顯示后,我填寫一個(gè)表單,表單校驗(yàn)通過后,再調(diào)用API接口,返回成功后,關(guān)閉彈窗。
一個(gè)很簡單的東西,element-ui用的很方便,在這里就懵比了,剛開始做的,彈窗關(guān)閉了,才返回異步接口調(diào)用的結(jié)果。網(wǎng)速慢點(diǎn),用起來真的很不好。
正確的解決方式一:
<van-dialog v-model="showDialog" title="提示" show-cancel-button :before-close="onBeforeClose" @confirm="handleConfirm" > <van-form ref="myform"> <van-field v-model="attendanceName" name="name" label="名稱" placeholder="請(qǐng)輸入名稱" :rules="[ { required: true, message: '請(qǐng)?zhí)顚懨Q' } ]" /> </van-form> </van-dialog>
關(guān)鍵點(diǎn),showDialog控制顯示隱藏,before-close控制關(guān)閉前的回調(diào),confirm 是彈窗點(diǎn)擊確認(rèn)按鈕觸發(fā)的事件,ref拿到form實(shí)例。
剛開始我把表單校驗(yàn)放在before-close,實(shí)現(xiàn)的結(jié)果不對(duì)。
onBeforeClose(action, done) { if (action === "confirm") { return done(false); } else { // 重置表單校驗(yàn) this.$refs["myform"].resetValidation("name"); this.name= undefined; return done(); } },
我把onBeforeClose中的,點(diǎn)擊確認(rèn)confirm的操作,done(false),阻止彈窗關(guān)閉
把表單校驗(yàn)和異步接口請(qǐng)求成功后關(guān)閉彈窗的,都放到handleConfirm操作中,
// 實(shí)例彈窗確認(rèn) handleConfirm() { this.$refs["myform"] .validate() .then(() => { let para = { data: { name: this.name, }, }; ajaxAdd(para).then(() => { this.showDialog = false; // 在這里手動(dòng)的關(guān)閉彈窗 this.$toast.success("新增成功"); this.name= undefined; this.onRefresh(); }); }) .catch(() => {}); },
這樣修改后,點(diǎn)擊取消,可以直接關(guān)閉。點(diǎn)擊確認(rèn),需要先表單校驗(yàn),校驗(yàn)成功后,才會(huì)去發(fā)送ajax異步請(qǐng)求,請(qǐng)求接口返回成功后,才會(huì)關(guān)閉彈窗。
補(bǔ)充知識(shí):關(guān)于Vant dialog 異步彈出框使用記錄
這個(gè)是官方文檔,啥說明沒有就有個(gè)解釋
這是人干的的事嘛。。。
具體來說下怎么在vue中使用它
以上這篇vant-ui組件調(diào)用Dialog彈窗異步關(guān)閉操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue實(shí)現(xiàn)給div綁定keyup的enter事件
這篇文章主要介紹了vue實(shí)現(xiàn)給div綁定keyup的enter事件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07Vuex進(jìn)行Echarts數(shù)據(jù)頁面初始化后如何更新dom
這篇文章主要為大家詳細(xì)介紹了使用Vuex做Echarts數(shù)據(jù)時(shí),當(dāng)頁面初始化后如何更新dom,文中的示例代碼講解詳細(xì),有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11詳解在Vue中使用TypeScript的一些思考(實(shí)踐)
這篇文章主要介紹了詳解在Vue中使用TypeScript的一些思考(實(shí)踐),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-07-07vue 項(xiàng)目中使用Loading組件的示例代碼
這篇文章主要介紹了vue 項(xiàng)目中使用Loading組件的示例代碼,使用 loding 過渡數(shù)據(jù)的加載時(shí)間2018-08-08Vue項(xiàng)目引進(jìn)ElementUI組件的方法
這篇文章主要介紹了Vue項(xiàng)目引進(jìn)ElementUI組件的方法,本文分步驟給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2018-11-11Vue3使用setup監(jiān)聽props實(shí)現(xiàn)方法詳解
這篇文章主要為大家介紹了Vue3使用setup監(jiān)聽props實(shí)現(xiàn)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08