vue 当划过一个控件显示提示消息_62. Vue 饿了么Mint UI组件的基本使用

前言

前面的篇章基本已经说明在webpack中如何构建vue框架的时候。除了这些基础框架的要素,为了快速开发app应用。还要借助于更多的开源组件。

本篇章就来介绍一下如何基本使用饿了么的Mint UI组件。

使用 饿了么的 MintUI 组件

Github 仓储地址

Mint-UI官方文档

d3263bcadc90781ec04f815b9dec9106.png
image-20200315104421188

腾讯说明文档

c7aefe4abf444b95e7b57b09436d8d0c.png
image-20200315112610272

安装基本说明

首先我们来看看官网的首页介绍,如下:

e6067a26af5c35af1288b84c192b533e.png
image-20200315104934550

对于mint-ui的导入更加推荐使用「按需导入」的方式,因为这样可以节省压缩编译后的bundle.js的空间大小。

1.使用npm安装mint-ui

# Vue 2.0
npm install mint-ui -S

在项目中执行安装如下:

a2b7062bba5fcdc1f1ba4232ff84549d.png
image-20200315105323428

好了,安装完毕之后,下面来「导入组件」

2.完整导入mint-ui的说明

访问 http://mint-ui.github.io/docs/#/zh-cn2/quickstart

下面先来完整导入看看,如下:

693bd8fb86caa37b2e7a303e65ab7be4.png
image-20200315110823191

在 main.js 中写入以下内容:

import Vue from 'vue'
import MintUI from 'mint-ui'
import 'mint-ui/lib/style.css'
import App from './App.vue'

Vue.use(MintUI)

new Vue({
el: '#app',
components: { App }
})

以上代码便完成了 Mint UI 的引入。需要注意的是,样式文件需要单独引入。

Mint-UI中css组件的使用

3.在 main.js 配置完整导入mint-ui

5c8628f211eb23e5d3d3d915a0dd2d1e.png
image-20200315111942970

当完整导入mint-ui之后,就可以使用使用相关的组件了,下面来看看一个button按钮组件。

4.使用button组件

访问 https://cloud.tencent.com/developer/section/1489979

4d632b06c758035f566e4c11c865a301.png
image-20200315112722805
<mt-button type="default">defaultmt-button>
<mt-button type="primary">primarymt-button>
<mt-button type="danger">dangermt-button>

下面在app组件中使用看看,如下:

dd7d56ac5bf2105c7be84665342912de.png
image-20200315113003736

在浏览器看看效果:

dda7457aa73de560552b065430713060.png
image-20200315113030916

5.设置button按钮的大小

<mt-button size="small">smallmt-button>
<mt-button size="large">largemt-button>
<mt-button size="normal">normalmt-button>

下面配置一下,如下:

8292176b8733992006299cd0ba37726e.png
image-20200315114917183

浏览器显示如下:

10ca85b540629fea0156c995bdbad06f.png
image-20200315115012382

6.设置button按钮的禁用disabled

<mt-button disabled>disabledmt-button>

设置如下:

9be2303c6d1b1926d44e444a1e37c486.png
image-20200315115906041

浏览器显示如下:

db8657097c6a3701e603676a7906f74e.png
image-20200315120050933

7.设置button幽灵按钮 plain

<mt-button plain>plainmt-button>

编写如下:

942d163eed5a3c8e0cde0018a495d17b.png
image-20200315120315336

浏览器显示如下:

09e2d9fc75903c630c04589f10f6dfd6.png
image-20200315120344946

8.设置button图表 icon

<mt-button icon="back">backmt-button>
<mt-button icon="more">更多mt-button>

设置如下:

1ab9b485e503663fbd9a8097f3f20c94.png
image-20200315120616239

浏览器显示如下:

0f8e93febb9b92e95a3d380d1b9b090b.png
image-20200315120639017

可以看到mint-ui提供了这两个的图标,如果还要更多,就要自己自定义使用其他库的图标了。

Mint-UI中 js 组件的使用

上面演示了mint-ui中css组件的基本使用,那么下面来看看js组件的基本使用。

与css组件不同,js组件不管Mint-ui是否完整导入,都需要进行特定的组件进行导入。

1.导入简短的消息提示框 | Toast

import { Toast } from 'mint-ui';

2.下面在app组件中设置一个点击按钮事件,并且触发Toast消息

基本用法:

Toast('提示信息');

在app组件中设置如下:

1a5a333612c33970a0b3206c13cb46ef.png
image-20200315160749396

在浏览器测试如下:

23614635c833ae0f9b66e92326982481.png
image-20200315160824594

3.设置更多消息提示的API配置

https://cloud.tencent.com/developer/section/1489961

4f5b051fd389c6c7a97f494fd140db2b.png
image-20200315160939504

在调用 Toast 时传入一个对象即可配置更多选项

Toast({
message: '提示',
position: 'bottom',
duration: 5000
});

若需在文字上方显示一个 icon 图标,可以将图标的类名作为 iconClass 的值传给 Toast(图标需自行准备)

Toast({
message: '操作成功',
iconClass: 'icon icon-success'
});

执行 Toast 方法会返回一个 Toast 实例,每个实例都有 close 方法,用于手动关闭 Toast

let instance = Toast('提示信息');
setTimeout(() => {
instance.close();
}, 2000);

「API」

参数说明类型可选值默认值
message文本内容String
positionToast 的位置String'top''bottom''middle''middle'
duration持续时间(毫秒),若为 -1 则不会自动关闭Number3000
classNameToast 的类名。可以为其添加样式String
iconClassicon 图标的类名String

可以看到文档中提示有很多API参数可以设置,下面来逐个演示一下。

4.设置提示消息的位置以及持续时长

acb6c4f2f01439a055c2a066432ca975.png
image-20200315161242335

测试效果如下:

b813e3c02476417b244f7e37ba5bab20.png
image-20200315161311419

5.给提示消息设置icon图标

虽然提示消息可以配置icon图标,但是图标库却是要自己准备的。

「说明:若需在文字上方显示一个 icon 图标,可以将图标的类名作为 iconClass 的值传给 Toast(图标需自行准备)」
Toast({
message: '操作成功',
iconClass: 'icon icon-success'
});
在这里我使用阿里巴巴的图标矢量库作为演示,首先访问:https://www.iconfont.cn/

搜索一个打勾的图标作为演示,如下:

849a8b188b87f6ce55e04a4f3a9cb459.png
image-20200315162528661
7465fddaa601e925da32919ab21069ed.png
image-20200315162558629
b436a501f2df113f943134bd76503454.png
image-20200315162730420

将选择好的图标下载至本地中。

创建一个static/iconfont文件夹,用于存放字体文件
cbac0c144abfa9303b29019f4567d5de.png
image-20200315163032168
main.js导入iconfont库
ced9f47956f1bec17e4a50c7f02bdcbf.png
image-20200315165128597
// 引入iconfont库
import './static/iconfont/iconfont.css'
配置webpack使用字体库文件
安装url-loader
cnpm i url-loader file-loader -D

在webpack.config.js配置规则如下:
    module: {
rules: [
....
{ test: /\.(ttf|eot|svg|woff|woff2)$/, use: 'url-loader' }, // 处理 字体文件的 loader
]
},

在消息提示Toast中设置图标样式
c7a57b84e7c232e0bc25dc0ec36a9e9a.png
image-20200315165650356
在浏览器看看提示消息
ba09c946dd7f0661868dfa4c11740686.png
image-20200315165723894

6.自定义Toast的样式类

dee487f9ee10420695c311f6637e5163.png
image-20200315170153786
81dbb1b63fbf6230bae628ce38d0955d.png
image-20200315170919422

在浏览器显示如下:

c8a05ec76bc37091446ddcc1c8200219.png
image-20200315171003080

7.自定义关闭Toast提示消息

在网页请求的时候,经常会使用一些loding加载图标。当请求回来之后,则关闭图标。

那么这种情况就需要我们自己来定义图标的关闭时刻。

下面可以设置图标不关闭,然后使用延时setTimeout来模拟网络延时请求,如下:

87793573b276cefd716f3f1dbd84fd39.png
image-20200315172733967
created() {
console.log("模拟网页启动获取list数据");
// 模拟网页启动获取list数据
this.getlist()
},
methods: {
getlist() {
let instance = Toast({
message: '提示',
position: 'bottom',
duration: -1, // 设置图标不关闭
iconClass: 'iconfont icon-xin11', // 设置图标
className: 'mytoast', // 自定义样式类
}); // 启动图标

// 使用延时来模拟网络请求
setTimeout(function () {
instance.close();
console.log("获取到列表数据,关闭图标")
}, 3000)

},

测试效果如下:

c00ad1904a39192ccca8baef412e1b9b.png
image-20200315172816694
9bddfd70f605727e46bca06b209bc8b9.png
image-20200315172837950

Mint-UI 按需导入组件说明

在上面都是使用Mint-UI的完整导入,我们来看看生成的bundle.js文件有多大,如下:

bbb0630248deb1364bf3815460be50a6.png
image-20200315201026071

生成的bundle.js大小达到了1.16 MB,这是非常大的。

为了更好的减少这个文件大小,下面我们来按需导入mint-ui。

1.官网按需导入的说明

「按需引入」

借助 babel-plugin-component,我们可以只引入需要的组件,以达到减小项目体积的目的。

首先,安装 babel-plugin-component:

npm install babel-plugin-component -D

然后,将 .babelrc 修改为:

{
"presets": [
["es2015", { "modules": false }]
],
"plugins": [["component", [
{
"libraryName": "mint-ui",
"style": true
}
]]]
}

如果你只希望引入部分组件,比如 Button 和 Cell,那么需要在 main.js 中写入以下内容:

import Vue from 'vue'
import { Button, Cell } from 'mint-ui'
import App from './App.vue'

Vue.component(Button.name, Button)
Vue.component(Cell.name, Cell)
/* 或写为
* Vue.use(Button)
* Vue.use(Cell)
*/

new Vue({
el: '#app',
components: { App }
})

下面来执行一下看看。

2.安装插件 babel-plugin-component

npm install babel-plugin-component -D
537888e554b4c8ac494299f87263e088.png
image-20200315203014239

3.将 .babelrc 配置插件

01b89460f730bb3f4756695c00620668.png
image-20200315203504152
{
"presets": ["@babel/preset-env"],
"plugins": [
["@babel/plugin-transform-runtime", {"corejs": 2, "helpers": true, "regenerator": true, "useESModules": false}],
["component", {"libraryName": "mint-ui","style": true}]
]
}

4.在main.js配置导入Button按钮

045967b491db10106e1f384fc8e988f1.png
image-20200315203845467
// 按需导入 Mint-UI
// 导入Button按钮
import { Button } from 'mint-ui'
Vue.component(Button.name, Button); // 设置Button按钮组件,可以自定义修改 Button 组件的名称 Button.name

5.测试是否正常使用Button组件

c227c9786a02f65d129b45db5e389452.png
image-20200315203926693

更多精彩原创Devops文章,快来关注我的公众号:【Devops社群】 吧:」

f1789d8d5e71132af8d1ae171ee6ab98.gif
image

点击下面,查看更多Vue系列文章

a4810f573d7a62f7b68308cb355e550c.png369c5e67946a8127a5408a6ba2d67043.gif

378203a982108a37febff98262e2a0f1.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值