基于VUE.JS的移动端框架Mint UI的使用


Posted in Javascript onOctober 11, 2017

Mint UI

GitHub:github.com/ElemeFE/mint

项目主页:mint-ui.github.io/#

Demo:elemefe.github.io/mint-

文档:mint-ui.github.io/docs/#

由饿了么前端团队推出的 Mint UI 是一个基于 Vue.js 的移动端组件库。自 6 月初开源以来,根据社区和团队内部的反馈,修复了一些 bug 并新增了部分组件,于本周发布了 0.2.0 版本。本文介绍如何从零开始构建一个使用 Mint UI 的 Vue 项目。

脚手架

随着 Vue.js 的迅速发展,目前搭建一个 Vue 项目的脚手架已经有不少选择了。比如可以使用官方提供的 vue-cli。本文使用饿了么自己的构建工具 cooking 来完成这个任务。

首先,全局安装 cooking:

npm i cooking -g

新建项目文件夹:

mkdir mint-ui-example

进入项目文件夹,使用 cooking 进行构建:

cooking init vue

最后的参数 vue 表示构建的是基于 Vue.js 的脚手架。

在构建过程中,cooking 需要如下一些参数:

基于VUE.JS的移动端框架Mint UI的使用

其中“使用何种 CSS 预处理”这里选择的是 Salad,它是一套基于 PostCSS 的解决方案,有兴趣的同学可以了解一下。当然,你也可以选择其他的预处理器。

完成构建后的项目结构为:

基于VUE.JS的移动端框架Mint UI的使用

接下来安装 Mint UI:

npm i mint-ui --save

引入 Mint UI

好了,之后的工作可以分为两种情况:

1. 引入全部组件
如果你的项目会用到 Mint UI 里较多的组件,最简单的方法就是把它们全部引入。此时需要在入口文件 main.js 中:

import MintUI from 'mint-ui';
import 'mint-ui/lib/style.css';

Vue.use(MintUI);

2. 按需引入

如果你只需要使用某个组件,可以仅引入这个组件,Mint UI 能够保证在代码打包时,与这个组件无关的文件不会出现在最终代码里。比如需要引入 Button 组件,则在 main.js 中:

import Button from 'mint-ui/lib/button';
import 'mint-ui/lib/button/style.css';

Vue.component(Button.name, Button);

可以看出,上面两种引入方法都要单独引入相应的 CSS 文件。这很不方便,尤其当你使用按需引入的方法引入多个组件时。为了避免这个问题,可以使用babel-plugin-component 插件。首先当然是安装它:

npm i babel-plugin-component -D

然后在 .babelrc 中配置它:

{
 "plugins": ["other-plugin", ["component", [
  { "libraryName": "mint-ui", "style": true }
 ]]]
}

这样上述两种引入方法就可以简化为:

import MintUI from 'mint-ui';

Vue.use(MintUI);

import Button from 'mint-ui/lib/button';

Vue.component(Button.name, Button);

插件会自动引入相应的 CSS 文件。

使用

每个组件的使用方法请阅读文档,这里只举一个微小的例子。在 app.vue 中:

<template>
 <h1>mint-ui-example</h1>
 <mt-button
  type="primary"
  @click="sheetVisible = true">
  选择操作
 </mt-button>
 <mt-actionsheet
  cancel-text=""
  :actions="actions"
  :visible.sync="sheetVisible">
 </mt-actionsheet>
</template>

<script>
 import { Toast, MessageBox } from 'mint-ui';
 export default {
  name: 'app',

  data() {
   return {
    sheetVisible: false,
    actions: [{
     name: '展示 Toast',
     method: this.showToast
    }, {
     name: '展示 Message Box',
     method: this.showMsgbox
    }]
   };
  },

  methods: {
   showToast() {
    Toast('这是一个 Toast');
   },

   showMsgbox() {
    MessageBox('提示', '这是一个 Message Box');
   }
  }
 };
</script>

则会得到如下页面:

基于VUE.JS的移动端框架Mint UI的使用

预告

以上就是 Mint UI 的使用方法介绍。如果在使用的过程中遇到任何问题,或者是想给我们一些建议,欢迎大家去 GitHub 仓库提 issue。

可能有些同学知道,除了这个移动端组件库以外,饿了么还有一套桌面端组件库vue-desktop。目前我们正在对它进行重构,这次有了 UED 的介入,整体视觉有了很大的提升。完成后也会开源,而且会有两个版本,分别支持 vue 1.0.x 和 vue 2.0。当然,Mint UI 也会考虑支持 vue 2.0。

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

Javascript 相关文章推荐
本地对象Array的原型扩展实现代码
Dec 04 Javascript
百度判断手机终端并自动跳转js代码及使用实例
Jun 11 Javascript
JavaScript DOM进阶方法
Apr 13 Javascript
一不小心就做错的JS闭包面试题
Nov 25 Javascript
js获取时间精确到秒(年月日)
Mar 16 Javascript
BootStrap的table表头固定tbody滚动的实例代码
Aug 24 Javascript
动态JavaScript所造成一些你不知道的危害
Sep 25 Javascript
bootstrap实现每隔5秒自动轮播效果
Dec 20 Javascript
js实现图片上传并预览功能
Aug 06 Javascript
详解微信小程序用定时器实现倒计时效果
Apr 30 Javascript
vue中 数字相加为字串转化为数值的例子
Nov 07 Javascript
vue element实现表格合并行数据
Nov 30 Vue.js
jQuery中extend函数简单用法示例
Oct 11 #jQuery
vue中配置mint-ui报css错误问题的解决方法
Oct 11 #Javascript
node.js操作MongoDB的实例详解
Oct 11 #Javascript
简单谈谈vue的过渡动画(推荐)
Oct 11 #Javascript
Vue-router结合transition实现app前进后退动画切换效果的实例
Oct 11 #Javascript
jQuery实现的事件绑定功能基本示例
Oct 11 #jQuery
AngularJS中下拉框的高级用法示例
Oct 11 #Javascript
You might like
PHP中Date()时间日期函数的使用方法小结
2011/04/20 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
2017/06/09 PHP
thinkphp5.1框架模板布局与模板继承用法分析
2019/07/19 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
JS的递增/递减运算符和带操作的赋值运算符的等价式
2007/12/08 Javascript
JavaScript 设计模式 安全沙箱模式
2010/09/24 Javascript
js中有关IE版本检测
2012/01/04 Javascript
JS保留两位小数,多位小数的示例代码
2014/01/07 Javascript
javascript实现数字+字母验证码的简单实例
2014/02/10 Javascript
JavaScript包装对象使用详解
2015/07/09 Javascript
开启Javascript中apply、call、bind的用法之旅模式
2015/10/28 Javascript
移动端jQuery修正Web页面滑动时div问题的两则实例
2016/05/30 Javascript
细数JavaScript 一个等号,两个等号,三个等号的区别
2016/10/09 Javascript
深入理解Angular4订阅(Subscribe)与取消
2017/11/22 Javascript
vue + element-ui实现简洁的导入导出功能
2017/12/22 Javascript
Angularjs中的$apply及优化使用详解
2018/07/02 Javascript
微信小程序登录session的使用
2019/03/17 Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
2019/05/30 Javascript
vue3实现v-model原理详解
2019/10/09 Javascript
js仿360开机效果
2019/12/26 Javascript
[01:32]dota2拉比克至宝(222)
2018/12/20 DOTA
Python实现的简单发送邮件脚本分享
2014/11/07 Python
Python实现从脚本里运行scrapy的方法
2015/04/07 Python
Python字符串逐字符或逐词反转方法
2015/05/21 Python
Django中的CACHE_BACKEND参数和站点级Cache设置
2015/07/23 Python
python使用writerows写csv文件产生多余空行的处理方法
2019/08/01 Python
python解析多层json操作示例
2019/12/30 Python
浅析Python模块之间的相互引用问题
2021/02/26 Python
HTTP状态码详解
2021/03/18 杂记
利用canvas实现图片下载功能来实现浏览器兼容问题
2019/05/31 HTML / CSS
详解Canvas 跨域脱坑实践
2018/11/07 HTML / CSS
Vince官网:全球著名设计师品牌,休闲而优雅的服饰
2017/01/15 全球购物
小学教师节活动总结
2015/03/20 职场文书
Python基础之数据结构详解
2021/04/28 Python
Python实现PIL图像处理库绘制国际象棋棋盘
2021/07/16 Python
CSS文本阴影 text-shadow 悬停效果详解
2022/05/25 HTML / CSS