vue+el使用this.$confirm,不能阻斷代碼往下執(zhí)行的解決
vue+el使用this.$confirm不能阻斷代碼往下執(zhí)行
在vue+element ui的前端框架中使用el的confirm彈窗,遇到一個問題,就是連續(xù)多個彈窗提示一些信息,要是點擊確定繼續(xù)向下執(zhí)行,點擊取消就退出整個方法。
這時發(fā)現(xiàn)當代碼執(zhí)行到this.$confirm彈窗時,彈出彈窗后,繼續(xù)執(zhí)行了彈窗之后的代碼,沒有等到彈窗點擊確定或是取消之后再執(zhí)行。
具體解決
其實解決辦法也很簡單,因為this.$confirm也是一個promise方法,所以可以使用es6中的await等到返回結果。
await 表達式會暫停當前 async function 的執(zhí)行,等待 Promise 處理完成。
...... if(await this.$confirm('是否保存修改?', '確認信息', { ? ?distinguishCancelAndClose: true, ? ?confirmButtonText: '保存', ? ?cancelButtonText: '取消' ?}).catch(() => {}) !== 'confirm') { ?? ?return } // 點擊取消退出方法,點擊保存則繼續(xù)往下執(zhí)行 // 若沒有await,在彈出彈窗的同時就會接著往下執(zhí)行 this.doSaveInfo() ......
后記
看官方文檔學習一定要看仔細,看明白。認真學習promise和await。
使用this.$confirm換行顯示提示信息
在寫一個簡單的按鈕點擊確認框信息的時候,發(fā)現(xiàn)換行不能用\n。用了< br>發(fā)現(xiàn)也是字符串的輸出形式
去查了下發(fā)現(xiàn)需要使用$createElement來創(chuàng)建
這里我需要顯示兩行信息
代碼如下
creatNew(){ ?const h = this.$createElement ? ? ? ? this.$confirm('提示', { ? ? ? ? ? title: '提示', ? ? ? ? ? message: h('div', [ ? ? ? ? ? ? h('p', '新建會導致之前設置失效'), ? ? ? ? ? ? h('p', '是否繼續(xù)新建?') ? ? ? ? ? ]), ? ? ? ? ? confirmButtonText: '確定', ? ? ? ? ? cancelButtonText: '取消' ? ? ? ? }).then(() => { ? ? ? ? ....//調(diào)用新建方法 ? ? ? ? }).catch(()=>({}))//不要忘記catch ? ? ? ? //最后可以.finally(()=>({})) ? ? ? ? }
解釋
★h('div')就表示創(chuàng)建一個div標簽,
★如果寫成h('div',{class:'...'})就可以定義class,如:
?h('i', { class: 'el-icon-question' })
★如果寫成下面的,則可以定義props。(以element的彈出框el-tooltip為例)
h('el-tooltip',{props:{ ?? ??? ??? ??? ??? ?content: (function() { ? ? ? ? ? ? ? ? ? ?? ?return '彈出信息' ? ? ? ? ? ? ? ? ? ?? ?})(), ? ? ? ? ? ? ? ? ?? ?placement: 'top' ? ? ? ? ? ? ? ? ?? ?}})
★包含關系用h('div',[...]),如div中包含兩個p標簽:(可以繼續(xù)嵌套)
h('div', [ ? ? ? ? ? ? h('p', '第一個p'), ? ? ? ? ? ? h('p', '第二個p') ? ? ? ? ? ])
簡單介紹到這里吧~
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
解析vue?3.0?使用axios庫發(fā)起?post?get?的配置過程
get post 請求開發(fā)中最普通最常見的請求方式但是在vue中如何實現(xiàn)呢 這里記錄一下配置過程,對vue?使用axios發(fā)起?post?get配置過程感興趣的朋友一起看看吧2022-05-05Vuex進行Echarts數(shù)據(jù)頁面初始化后如何更新dom
這篇文章主要為大家詳細介紹了使用Vuex做Echarts數(shù)據(jù)時,當頁面初始化后如何更新dom,文中的示例代碼講解詳細,有需要的小伙伴可以跟隨小編一起學習一下2023-11-11Vue3+ts+setup?getCurrentInstance使用時遇到的問題以及解決辦法
getCurrentInstance方法用于獲取當前組件實例,僅在setup和生命周期中起作用,下面這篇文章主要給大家介紹了關于Vue3+ts+setup?getCurrentInstance使用時遇到的問題以及解決辦法,需要的朋友可以參考下2022-08-08Vue如何利用flex布局實現(xiàn)TV端城市列表功能
用vue開發(fā)了三四個組件了,都是H5的,現(xiàn)在來看看PC是如何玩轉組件的,下面這篇文章主要給大家介紹了關于Vue如何利用flex布局實現(xiàn)TV端城市列表功能的相關資料,需要的朋友可以參考下2023-01-01vue+mockjs模擬數(shù)據(jù)實現(xiàn)前后端分離開發(fā)的實例代碼
本篇文章主要介紹了vue+mockjs模擬數(shù)據(jù)實現(xiàn)前后端分離開發(fā)的實例代碼,具有一定的參考價值,有興趣的可以了解一下2017-08-08