基於mpvue的簡單彈窗元件mptoast
介紹
mptoast 是一個基於mpvue的簡單彈窗元件 github地址:https://github.com/noahlam/mpvue-toast
特性
-
輕量 目前整個專案
未打包前
大概只有120行
程式碼(包括註釋),5kb左右(包括圖示) - 配置少 嘗試過無數種優化方法,只為減少配置
- 冗餘少 每個頁面(page)只需要引入一次,該頁面裡面如果有多個子元件,可以跟頁面共用一個,無需重複引入。
-
使用簡單 除了必須的在page頁面對元件import,註冊,和html引入(這些麻煩的東西由於mpvue不支援的原因,暫時無法做到優化),其他的使用只需一行簡單的程式碼
this.$mptoast('提示訊息‘)
即可實現彈窗 -
可定製性強 提供使用者重寫樣式的屬性,只需傳入一個定義好的
樣式類名
既可實現對原有樣式的覆蓋(具體請看引數說明)
安裝
1.安裝vuex
,如果你專案還沒使用的話。請放心,雖然mptoast
依賴vuex
,你不會接觸到任何有關vuex
的程式碼。新增vuex
只為讓你寫更少的程式碼。
npm i vuex
2.安裝mptoast
npm i mptoast -D
或者
yarn add mptoast --dev
3.在專案的主配置檔案(一般位於src/main.js)
加入以下程式碼
import mpvueToastRegistry from 'mptoast'
mpvueToastRegistry(Vue)
4.在你需要彈窗的頁面,引入元件,並註冊,然後在頁面內加入一個你註冊的元件,就可以在js裡面呼叫this.$mptoast()
了, 以下是一個簡單的例項
<template>
<div>
<-- 省略其他程式碼 -->
<mptoast />
</div>
</template>
<script>
import mptoast from 'mptoast'
export default {
components: {
mptoast
},
data () {
return {}
},
methods: {
showToast () {
this.$mptoast('我是提示資訊')
},
}
}
</script>
至於為什麼沒辦法做到像vue元件那樣,引入一次,就可以在所有頁面使用,我想我必須得解釋以下,因為mpvue目前還不支援全域性的元件,我嘗試過很多種變通辦法,都行不通,甚至為了讓大家使用的時候,少輸入幾個字,少一些冗餘,我都做了很多嘗試和優化,目前mpvue團隊已經在考慮新增全域性元件功能,我會時刻關注,一旦支援,我這邊也立馬做支援。
引數說明
引數分2種型別,一種是多個引數,另一個種則少只接收一個物件
一, 多個引數
引數位置 | 引數型別 | 引數名稱 | 是否必填 | 預設值 | 其他說明 |
---|---|---|---|---|---|
1 | string | 顯示文字 | 是 | - | 如果第一個引數不是string或number型別 則會被當作物件來處理,也就是上面提到的另一種情況 |
2 | stirng | 顯示圖示型別 | 否 | - | 3種可選 'success' , 'error' , 'info' |
3 | number | 關閉時間 | 否 | 1500 | 單位是毫秒ms,傳其他格式(非number型別)會報錯 |
4 | string | 文字樣式類名 | 否 | - | 如果需要自定義顯示的樣式,請先定一個樣式類 然後把類名傳給該引數,定義類的時候 如果所有頁面都使用這個類,必須定義為全域性的 如果定義在scope作用域內的話 子元件不能複用父元件的樣式。 |
5 | string | icon樣式類名 | 否 | - | 同上,需要注意的是icon是包含在文字里面的 |
以下程式碼是一個多個引數呼叫的簡單例項
this.$mptoast('溫馨提示', 'success', 2000)
二, 單個object物件
object物件引數的功能,其實跟上面多個引數
的對應的功能是一樣的,只是寫法不同而已,我們直接看程式碼
this.$mptoast({
text: '溫馨提示', // 顯示文字
icon:'success' // 圖示型別
duration: 2000, // 關閉時間
textClass: 'my-class' // 樣式類名
iconClass: 'icon-class' // 圖示類名
})
需要注意的是,以上引數,如果傳入錯誤的型別,先會進行型別轉換,如果轉換失敗的,可能會報錯。
相關文章
- 一個基於mpvue的toast彈窗元件mptoastVueAST元件
- mptosat,一個基於mpvue的toast彈窗元件VueAST元件
- 基於mpvue的toast元件VueAST元件
- Flutter 重構:基於 PopupRoute 的極簡彈窗Flutter
- 簡單的網頁彈窗陷阱網頁
- svelte-popup 基於svelte.js移動端彈窗元件JS元件
- 基於 mpvue 框架的小程式選擇元件,支援單列,多列,級聯Vue框架元件
- svelte-layer 基於svelte.js網頁pc端彈窗元件JS網頁元件
- 論如何用Vue實現一個彈窗-一個簡單的元件實現Vue元件
- 基於C#的簡單登入窗體設計C#
- uniapp 自定義彈窗元件APP元件
- 基於NuxtJS/Vue自定義彈層元件|Vue長按彈窗|Vue全域性對話方塊UXJSVue元件
- 封裝React AntD的dialog彈窗元件封裝React元件
- 封裝Vue Element的dialog彈窗元件封裝Vue元件
- Element修改彈窗類元件的層級元件
- svelte元件:Svelte自定義彈窗Popup元件|svelte移動端彈框元件元件
- 基於Vue.js封裝一個簡單的select元件Vue.js封裝元件
- laraval-admin彈窗table元件改元件
- 直播app原始碼,Flutter 彈窗元件APP原始碼Flutter元件
- 基於元件化開發,一個簡單的Android專案框架元件化Android框架
- Blazor元件的new使用方式與動態彈窗Blazor元件
- 基於React.js網頁版彈窗|react pc端自定義對話方塊元件RLayerReactJS網頁元件
- Blazor Bootstrap 元件庫 Toast 輕量彈窗元件介紹Blazorboot元件AST
- 一個簡單實用的基於echarts-折線圖的vue元件EchartsVue元件
- 【vue系列】封裝公共彈窗元件的正確方式Vue封裝元件
- 基於mpvue的仿滴滴出行小程式Vue
- 直播平臺軟體開發,簡單易修改的彈框元件元件
- 基於Opencv的簡單影像處理OpenCV
- 實現一個帶有動效的 React 彈窗元件React元件
- 基於mpvue的微信小程式專案搭建Vue微信小程式
- 基於mpvue的小程式專案搭建的步驟Vue
- 表格單元格點選操作(彈窗)
- Android彈窗元件工作機制之Dialog、DialogFragment(一)Android元件Fragment
- 基於Vue.js PC桌面端彈出框元件|vue自定義彈層元件|vue模態框Vue.js元件
- 從零開始徒手擼一個vue的toast彈窗元件VueAST元件
- 基於websocket的簡單廣播系統Web
- 基於SSM框架的簡單問答社群SSM框架
- 基於mpvue的小程式markdown適配解決方案Vue