基于mpvue的简单弹窗组件mptoast使用详解


Posted in Javascript onAugust 02, 2019

介绍

mptoast 是一个基于mpvue的简单弹窗组件 github地址: https://github.com/noahlam/mpvue-toast

特性

1.轻量 目前整个项目未打包前大概只有120行代码(包括注释),5kb左右(包括图标)

2.配置少 尝试过无数种优化方法,只为减少配置

3.冗余少 每个页面(page)只需要引入一次,该页面里面如果有多个子组件,可以跟页面共用一个,无需重复引入。

4.使用简单 除了必须的在page页面对组件import,注册,和html引入(这些麻烦的东西由于mpvue不支持的原因,暂时无法做到优化),其他的使用只需一行简单的代码 this.$mptoast('提示消息‘)即可实现弹窗

5.可定制性强 提供用户重写样式的属性,只需传入一个定义好的样式类名既可实现对原有样式的覆盖(具体请看参数说明)

安装

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是包含在文本里面的

同上,需要注意的是icon是包含在文本里面的

以下代码是一个多个参数调用的简单实例

this.$mptoast('温馨提示', 'success', 2000)

二, 单个object对象

object对象参数的功能,其实跟上面多个参数的对应的功能是一样的,只是写法不同而已,我们直接看代码

this.$mptoast({
 text: '温馨提示',    // 显示文本
 icon:'success'     // 图标类型
 duration: 2000,    // 关闭时间
 textClass: 'my-class'  // 样式类名
 iconClass: 'icon-class' // 图标类名
})

需要注意的是,以上参数,如果传入错误的类型,先会进行类型转换,如果转换失败的,可能会报错。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery清空textarea等输入框实现代码
Apr 22 Javascript
javascript打开word文档的方法
Apr 16 Javascript
jQuery.holdReady()方法用法实例
Dec 27 Javascript
javascript格式化指定日期对象的方法
Apr 21 Javascript
js判断当前页面在移动设备还是在PC端中打开
Jan 06 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
Feb 21 Javascript
7个好用的JavaScript技巧分享(译)
May 07 Javascript
在Vue中使用icon 字体图标的方法
Jun 14 Javascript
vue柱状进度条图像的完美实现方案
Aug 26 Javascript
使用layui实现的左侧菜单栏以及动态操作tab项方法
Sep 10 Javascript
JS在Array数组中按指定位置删除或添加元素对象方法示例
Nov 19 Javascript
基于vue+echarts数据可视化大屏展示的实现
Dec 25 Vue.js
vue下使用nginx刷新页面404的问题解决
Aug 02 #Javascript
超轻量级的js时间库miment使用解析
Aug 02 #Javascript
操作按钮悬浮固定在微信小程序底部的实现代码
Aug 02 #Javascript
微信小程序中悬浮窗功能的实现代码
Aug 02 #Javascript
微信小程序的授权实现过程解析
Aug 02 #Javascript
jQuery实现input[type=file]多图预览上传删除等功能
Aug 02 #jQuery
用 js 写一个 js 解释器过程详解
Aug 02 #Javascript
You might like
PHP扩展模块Pecl、Pear以及Perl的区别
2014/04/09 PHP
PHP使用php-resque库配合Redis实现MQ消息队列的教程
2016/06/29 PHP
PHP实现链式操作的三种方法详解
2017/11/16 PHP
php设计模式之职责链模式定义与用法经典示例
2019/09/19 PHP
如何使用jQuery Draggable和Droppable实现拖拽功能
2013/07/05 Javascript
浅析js预加载/延迟加载
2014/09/25 Javascript
Vue.js 2.0 和 React、Augular等其他前端框架大比拼
2016/10/08 Javascript
微信小程序实战之顶部导航栏(选项卡)(1)
2020/06/19 Javascript
微信小程序实现瀑布流布局与无限加载的方法详解
2017/05/12 Javascript
微信小程序canvas拖拽、截图组件功能
2018/09/04 Javascript
解决Vue2.0 watch对象属性变化监听不到的问题
2018/09/11 Javascript
vue中el-upload上传图片到七牛的示例代码
2018/10/19 Javascript
layer.open 获取不到表单信息的解决方法
2019/09/26 Javascript
Vue自定义render统一项目组弹框功能
2020/06/07 Javascript
JS时间戳与日期格式互相转换的简单方法示例
2021/01/30 Javascript
[02:57]DOTA2亚洲邀请赛 SECRET战队出场宣传片
2015/02/07 DOTA
Python 调用VC++的动态链接库(DLL)
2008/09/06 Python
分析python服务器拒绝服务攻击代码
2014/01/16 Python
python通过ftplib登录到ftp服务器的方法
2015/05/08 Python
Python实现豆瓣图片下载的方法
2015/05/25 Python
Python中xml和json格式相互转换操作示例
2018/12/05 Python
python 爬虫 实现增量去重和定时爬取实例
2020/02/28 Python
意大利会呼吸的鞋:Geox健乐士
2017/02/12 全球购物
Booking.com缤客中国:全球酒店在线预订网站
2020/05/03 全球购物
党员自我评价分享
2013/12/13 职场文书
事业单位接收函
2014/01/10 职场文书
十八大报告观后感
2014/01/28 职场文书
个人充满哲理的自我评价
2014/02/20 职场文书
给老师的一封建议书
2014/03/13 职场文书
建筑工程专业大学生求职信
2014/04/23 职场文书
关于安全的标语
2014/06/10 职场文书
民主生活会对照检查材料范文
2014/10/01 职场文书
欢迎词怎么写
2015/01/23 职场文书
语文教师求职信范文
2015/03/20 职场文书
领导视察通讯稿
2015/07/18 职场文书
Python 可迭代对象 iterable的具体使用
2021/08/07 Python