Vue解決element-ui消息提示$message重疊問題
錯誤出現(xiàn)
貼一段代碼

函數(shù)中程序同步執(zhí)行,先后觸發(fā)兩個$message,此時兩個$message的彈窗重疊

預期的情況是下圖這樣一上一下出現(xiàn)

這因為vue的異步更新隊列有緩沖機制,第一次$message觸發(fā)時,并沒有更新dom,導致第二個$message取item.$el.offsetHeight取到的高度為0,所以第二個$message只是下移了默認的offset(即16px),并沒有加上第一個$message的offsetHeight。
解決這個問題的辦法
1、如果是單一場景,用$nextTick處理
this.$nextTick(() => {
this.$message(...);
});可以保證dom更新之后再觸發(fā)$message,正確的獲取到$el.offsetHeight

2、將第二個$message寫在setTimeout回調函數(shù)中
(其思想與$nextTick同理)
3、async + await

注意
如果有多個(>=3個)$message,$nextTick以及await只能解決第1個與第2個重疊的情況,第2個、第3個還會重疊,這種情況改用setTimeout。
以上就是Vue解決element-ui消息提示$message重疊問題的詳細內容,更多關于Vue解決message重疊的資料請關注腳本之家其它相關文章!
相關文章
vue+element-ui+axios實現(xiàn)圖片上傳
這篇文章主要為大家詳細介紹了vue+element-ui+axios實現(xiàn)圖片上傳,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-08-08
vue-router+vuex addRoutes實現(xiàn)路由動態(tài)加載及菜單動態(tài)加載
本篇文章主要介紹了vue-router+vuex addRoutes實現(xiàn)路由動態(tài)加載及菜單動態(tài)加載,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-09-09
Vue 中文本內容超出規(guī)定行數(shù)后展開收起的處理的實現(xiàn)方法
這篇文章主要介紹了Vue 中文本內容超出規(guī)定行數(shù)后展開收起的處理的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-04-04

