基于mpvue的簡單彈窗組件mptoast使用詳解
介紹
mptoast 是一個基于mpvue的簡單彈窗組件 github地址: https://github.com/noahlam/mpvue-toast
特性
1.輕量 目前整個項(xiàng)目未打包前大概只有120行代碼(包括注釋),5kb左右(包括圖標(biāo))
2.配置少 嘗試過無數(shù)種優(yōu)化方法,只為減少配置
3.冗余少 每個頁面(page)只需要引入一次,該頁面里面如果有多個子組件,可以跟頁面共用一個,無需重復(fù)引入。
4.使用簡單 除了必須的在page頁面對組件import,注冊,和html引入(這些麻煩的東西由于mpvue不支持的原因,暫時無法做到優(yōu)化),其他的使用只需一行簡單的代碼 this.$mptoast('提示消息‘)即可實(shí)現(xiàn)彈窗
5.可定制性強(qiáng) 提供用戶重寫樣式的屬性,只需傳入一個定義好的樣式類名既可實(shí)現(xiàn)對原有樣式的覆蓋(具體請看參數(shù)說明)
安裝
1.安裝vuex,如果你項(xiàng)目還沒使用的話。請放心,雖然mptoast依賴vuex,你不會接觸到任何有關(guān)vuex的代碼。添加vuex只為讓你寫更少的代碼。
npm i vuex
2.安裝mptoast
npm i mptoast -D
或者
yarn add mptoast --dev
3.在項(xiàng)目的主配置文件(一般位于src/main.js)加入以下代碼
import mpvueToastRegistry from 'mptoast' mpvueToastRegistry(Vue)
4.在你需要彈窗的頁面,引入組件,并注冊,然后在頁面內(nèi)加入一個你注冊的組件,就可以在js里面調(diào)用this.$mptoast()了, 以下是一個簡單的實(shí)例
<template> <div> <-- 省略其他代碼 --> <mptoast /> </div> </template> <script> import mptoast from 'mptoast' export default { components: { mptoast }, data () { return {} }, methods: { showToast () { this.$mptoast('我是提示信息') }, } } </script>
至于為什么沒辦法做到像vue組件那樣,引入一次,就可以在所有頁面使用,我想我必須得解釋以下,因?yàn)閙pvue目前還不支持全局的組件,我嘗試過很多種變通辦法,都行不通,甚至為了讓大家使用的時候,少輸入幾個字,少一些冗余,我都做了很多嘗試和優(yōu)化,目前mpvue團(tuán)隊(duì)已經(jīng)在考慮新增全局組件功能,我會時刻關(guān)注,一旦支持,我這邊也立馬做支持。
參數(shù)說明
參數(shù)分2種類型,一種是多個參數(shù),另一個種則少只接收一個對象
一, 多個參數(shù)
參數(shù)位置 | 參數(shù)類型 | 參數(shù)名稱 | 是否必填 | 默認(rèn)值 | 其他說明 |
---|---|---|---|---|---|
1 | string | 顯示文本 | 是 | - | 如果第一個參數(shù)不是string或number類型 則會被當(dāng)作對象來處理,也就是上面提到的另一種情況 |
2 | stirng | 顯示圖標(biāo)類型 | 否 | - | 3種可選 'success' , 'error' , 'info' |
3 | number | 關(guān)閉時間 | 否 | 1500 | 單位是毫秒ms,傳其他格式(非number類型)會報錯 |
4 | string | 文本樣式類名 | 否 | - | 如果需要自定義顯示的樣式,請先定一個樣式類 然后把類名傳給該參數(shù),定義類的時候 如果所有頁面都使用這個類,必須定義為全局的 如果定義在scope作用域內(nèi)的話 子組件不能復(fù)用父組件的樣式。 |
5 | string | icon樣式類名 | 否 | - | 同上,需要注意的是icon是包含在文本里面的 |
同上,需要注意的是icon是包含在文本里面的
以下代碼是一個多個參數(shù)調(diào)用的簡單實(shí)例
this.$mptoast('溫馨提示', 'success', 2000)
二, 單個object對象
object對象參數(shù)的功能,其實(shí)跟上面多個參數(shù)的對應(yīng)的功能是一樣的,只是寫法不同而已,我們直接看代碼
this.$mptoast({ text: '溫馨提示', // 顯示文本 icon:'success' // 圖標(biāo)類型 duration: 2000, // 關(guān)閉時間 textClass: 'my-class' // 樣式類名 iconClass: 'icon-class' // 圖標(biāo)類名 })
需要注意的是,以上參數(shù),如果傳入錯誤的類型,先會進(jìn)行類型轉(zhuǎn)換,如果轉(zhuǎn)換失敗的,可能會報錯。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Vue中axios的封裝(報錯、鑒權(quán)、跳轉(zhuǎn)、攔截、提示)
這篇文章主要介紹了Vue中axios的封裝(報錯、鑒權(quán)、跳轉(zhuǎn)、攔截、提示),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08修改el-form-item中的label里面的字體邊距或者大小問題
這篇文章主要介紹了修改el-form-item中的label里面的字體邊距或者大小問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10巧妙運(yùn)用v-model實(shí)現(xiàn)父子組件傳值的方法示例
這篇文章主要介紹了巧妙運(yùn)用v-model實(shí)現(xiàn)父子組件傳值的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-04-04淺談VUE防抖與節(jié)流的最佳解決方案(函數(shù)式組件)
這篇文章主要介紹了淺談VUE防抖與節(jié)流的最佳解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05解決el-select數(shù)據(jù)量過大的3種方案
最近做完一個小的后臺管理系統(tǒng),快上線了,發(fā)現(xiàn)一個問題,有2個select的選項(xiàng)框線上的數(shù)據(jù)量是1w+,而測試環(huán)境都是幾百的,所以導(dǎo)致頁面直接卡住了,本文給大家總結(jié)了3種方法,需要的朋友可以參考下2023-09-09vue調(diào)用微信JSDK 掃一掃,相冊等需要注意的事項(xiàng)
這篇文章主要介紹了vue調(diào)用微信JSDK 掃一掃,相冊等需要注意的事項(xiàng),幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下2021-01-01