重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
這篇文章將為大家詳細講解有關vue中怎么自定義一個全局消息框組件,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
開州網站制作公司哪家好,找創新互聯!從網頁設計、網站建設、微信開發、APP開發、響應式網站建設等網站項目制作,到程序開發,運營維護。創新互聯從2013年開始到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選創新互聯。
1.發現問題
在進行移動端適配的時候,為了在各個型號的設備上能夠更好的提現結構排版,決定采用rem布局。采用rem布局的時候html的字體font-size是有一個標準的。我這邊用的是750px的設計稿,就采用1rem = 100px。
在使用的過程中會用到一些第三方UI組件,而第三方UI組件是以px單位為標準的。
2.解決問題
有一種方法是可以可以用 px2rem-loader 插件可以將第三方ui庫的px轉換成rem單位,我們在寫樣式的時候用px,這個插件會幫我們轉換為rem單位。(因為暫時只是一個提示框遇到這樣的問題,不想大費周章,所以決定暫時不用,以后再用吧嘿嘿!)
自己寫小組件,在網上沖浪了一會,選了幾個小demo實現可以了下,確實比較好!(采用這個方法!)
3.自定義全局消息組件
大概效果有點模仿 element-ui 中的提示樣式,反正最后效果圖如下:
vue-cli3中component下新建message文件夾,里面再建如下:
Message.vue源代碼如下:
{{content}}
index.js源代碼如下:
給Vue添加$my_message
方法,判斷參數,使用 $mount()
給組件手動掛載參數,然后將組件插入頁面中
import Vue from 'vue' import Message from './Message.vue' const MessageBox = Vue.extend(Message) Message.install = function (options, type) { if (options === undefined || options === null) { options = { content: '' } } else if (typeof options === 'string' || typeof options === 'number') { options = { content: options } if (type !== undefined && options !== null) { options.type = type } } let instance = new MessageBox({ data: options }).$mount() document.body.appendChild(instance.$el) Vue.nextTick(() => { instance.visible = true }) } export default Message
main.js中:
// 在main.js里面全局引入 自定義的全局消息框組件 import Message from './components/message' Vue.prototype.$my_message = Message.install
頁面中調用:
this.$my_message('你這個大笨豬吼吼吼!'); this.$my_message('你這個大笨豬吼吼吼!','success'); this.$my_message({ content:'服務器連接失敗!', // 彈出的文字內容 time:5000, // 彈出后多久消失 type:'success', // 彈出的消息類型 hasClose:true, // 讓按鈕可以被使用,默認按鈕是false不可以使用的 });
關于vue中怎么自定義一個全局消息框組件就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。