基于mpvue的簡(jiǎn)單彈窗組件mptoast使用詳解
介紹
mptoast 是一個(gè)基于mpvue的簡(jiǎn)單彈窗組件 github地址: https://github.com/noahlam/mpvue-toast
特性
1.輕量 目前整個(gè)項(xiàng)目未打包前大概只有120行代碼(包括注釋),5kb左右(包括圖標(biāo))
2.配置少 嘗試過無數(shù)種優(yōu)化方法,只為減少配置
3.冗余少 每個(gè)頁(yè)面(page)只需要引入一次,該頁(yè)面里面如果有多個(gè)子組件,可以跟頁(yè)面共用一個(gè),無需重復(fù)引入。
4.使用簡(jiǎn)單 除了必須的在page頁(yè)面對(duì)組件import,注冊(cè),和html引入(這些麻煩的東西由于mpvue不支持的原因,暫時(shí)無法做到優(yōu)化),其他的使用只需一行簡(jiǎn)單的代碼 this.$mptoast('提示消息‘)即可實(shí)現(xiàn)彈窗
5.可定制性強(qiáng) 提供用戶重寫樣式的屬性,只需傳入一個(gè)定義好的樣式類名既可實(shí)現(xiàn)對(duì)原有樣式的覆蓋(具體請(qǐng)看參數(shù)說明)
安裝
1.安裝vuex,如果你項(xiàng)目還沒使用的話。請(qǐng)放心,雖然mptoast依賴vuex,你不會(huì)接觸到任何有關(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.在你需要彈窗的頁(yè)面,引入組件,并注冊(cè),然后在頁(yè)面內(nèi)加入一個(gè)你注冊(cè)的組件,就可以在js里面調(diào)用this.$mptoast()了, 以下是一個(gè)簡(jiǎn)單的實(shí)例
<template>
<div>
<-- 省略其他代碼 -->
<mptoast />
</div>
</template>
<script>
import mptoast from 'mptoast'
export default {
components: {
mptoast
},
data () {
return {}
},
methods: {
showToast () {
this.$mptoast('我是提示信息')
},
}
}
</script>
至于為什么沒辦法做到像vue組件那樣,引入一次,就可以在所有頁(yè)面使用,我想我必須得解釋以下,因?yàn)閙pvue目前還不支持全局的組件,我嘗試過很多種變通辦法,都行不通,甚至為了讓大家使用的時(shí)候,少輸入幾個(gè)字,少一些冗余,我都做了很多嘗試和優(yōu)化,目前mpvue團(tuán)隊(duì)已經(jīng)在考慮新增全局組件功能,我會(huì)時(shí)刻關(guān)注,一旦支持,我這邊也立馬做支持。
參數(shù)說明
參數(shù)分2種類型,一種是多個(gè)參數(shù),另一個(gè)種則少只接收一個(gè)對(duì)象
一, 多個(gè)參數(shù)
| 參數(shù)位置 | 參數(shù)類型 | 參數(shù)名稱 | 是否必填 | 默認(rèn)值 | 其他說明 |
|---|---|---|---|---|---|
| 1 | string | 顯示文本 | 是 | - | 如果第一個(gè)參數(shù)不是string或number類型 則會(huì)被當(dāng)作對(duì)象來處理,也就是上面提到的另一種情況 |
| 2 | stirng | 顯示圖標(biāo)類型 | 否 | - | 3種可選 'success' , 'error' , 'info' |
| 3 | number | 關(guān)閉時(shí)間 | 否 | 1500 | 單位是毫秒ms,傳其他格式(非number類型)會(huì)報(bào)錯(cuò) |
| 4 | string | 文本樣式類名 | 否 | - | 如果需要自定義顯示的樣式,請(qǐng)先定一個(gè)樣式類 然后把類名傳給該參數(shù),定義類的時(shí)候 如果所有頁(yè)面都使用這個(gè)類,必須定義為全局的 如果定義在scope作用域內(nèi)的話 子組件不能復(fù)用父組件的樣式。 |
| 5 | string | icon樣式類名 | 否 | - | 同上,需要注意的是icon是包含在文本里面的 |
同上,需要注意的是icon是包含在文本里面的
以下代碼是一個(gè)多個(gè)參數(shù)調(diào)用的簡(jiǎn)單實(shí)例
this.$mptoast('溫馨提示', 'success', 2000)
二, 單個(gè)object對(duì)象
object對(duì)象參數(shù)的功能,其實(shí)跟上面多個(gè)參數(shù)的對(duì)應(yīng)的功能是一樣的,只是寫法不同而已,我們直接看代碼
this.$mptoast({
text: '溫馨提示', // 顯示文本
icon:'success' // 圖標(biāo)類型
duration: 2000, // 關(guān)閉時(shí)間
textClass: 'my-class' // 樣式類名
iconClass: 'icon-class' // 圖標(biāo)類名
})
需要注意的是,以上參數(shù),如果傳入錯(cuò)誤的類型,先會(huì)進(jìn)行類型轉(zhuǎn)換,如果轉(zhuǎn)換失敗的,可能會(huì)報(bào)錯(cuò)。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Vue3+Vite中不支持require的方式引入本地圖片的解決方案
這篇文章主要介紹了Vue3+Vite中不支持require的方式引入本地圖片的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
vue中 process.env與process.VUE_CLI_SERVICE詳解
這篇文章主要介紹了vue中process.env與process.VUE_CLI_SERVICE的相關(guān)資料,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05
vscode配置@路徑提示方式,并解決vue文件內(nèi)失效的問題
這篇文章主要介紹了vscode配置@路徑提示方式,并解決vue文件內(nèi)失效的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10
vue實(shí)現(xiàn)百度搜索下拉提示功能實(shí)例
這篇文章主要介紹了vue實(shí)現(xiàn)百度搜索下拉提示功能實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
vue3項(xiàng)目新用戶引導(dǎo)組件driver.js示例詳解
好用的用戶引導(dǎo)插件有?intro.js?和?driver.js?兩個(gè),對(duì)比了一下,最終還是使用了driver.js,這篇文章主要介紹了vue3項(xiàng)目新用戶引導(dǎo)組件(driver.js),需要的朋友可以參考下2022-08-08
vue+iview的菜單與頁(yè)簽的聯(lián)動(dòng)方式
這篇文章主要介紹了vue+iview的菜單與頁(yè)簽的聯(lián)動(dòng)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
vue頁(yè)面加載時(shí)的進(jìn)度條功能(實(shí)例代碼)
這篇文章主要介紹了vue頁(yè)面加載時(shí)的進(jìn)度條功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01

