基于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 相关文章推荐
Javascript 陷阱 window全局对象
Nov 26 Javascript
jquery模拟按下回车实现代码
Sep 20 Javascript
图片img的src不变让浏览器重新加载实现方法
Mar 29 Javascript
AJAX跨域请求json数据的实现方法
Nov 11 Javascript
js 上下左右键控制焦点(示例代码)
Dec 14 Javascript
JavaScript Function函数类型介绍
Apr 08 Javascript
深入理解JavaScript 中的执行上下文和执行栈
Oct 23 Javascript
JavaScript模板引擎原理与用法详解
Dec 24 Javascript
微信JS-SDK updateAppMessageShareData安卓不能自定义分享详解
Mar 29 Javascript
js逆向解密之网络爬虫
May 30 Javascript
原生javascript制作的拼图游戏实现方法详解
Feb 23 Javascript
vue中div禁止点击事件的实现
Apr 02 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编程中的常见漏洞和代码实例
2014/08/06 PHP
PHP中__FILE__、dirname与basename用法实例分析
2014/12/01 PHP
PHP几个实用自定义函数小结
2016/01/25 PHP
php 无限级分类 获取顶级分类ID
2016/03/13 PHP
PHP PDOStatement::columnCount讲解
2019/01/30 PHP
PHP实现关键字搜索后描红功能示例
2019/07/03 PHP
js中文逗号转英文实现
2014/02/11 Javascript
JavaScript中的prototype和constructor简明总结
2014/04/05 Javascript
使用javaScript动态加载Js文件和Css文件
2015/10/24 Javascript
Angular中$compile源码分析
2016/01/28 Javascript
JS代码随机生成姓名、手机号、身份证号、银行卡号
2016/04/27 Javascript
把多个JavaScript函数绑定到onload事件处理函数上的方法
2016/09/04 Javascript
JS实现多张图片预览同步上传功能
2017/06/23 Javascript
js实现京东轮播图效果
2017/06/30 Javascript
JavaScript自执行函数和jQuery扩展方法详解
2017/10/27 jQuery
用ES6的class模仿Vue写一个双向绑定的示例代码
2018/04/20 Javascript
使用Python的Flask框架实现视频的流媒体传输
2015/03/31 Python
python3.4用函数操作mysql5.7数据库
2017/06/23 Python
python调用xlsxwriter创建xlsx的方法
2018/05/03 Python
Python pygame绘制文字制作滚动文字过程解析
2019/12/12 Python
Jupyter notebook如何实现指定浏览器打开
2020/05/13 Python
python调用jenkinsAPI构建jenkins,并传递参数的示例
2020/12/09 Python
DJI大疆无人机官方商城:全球领先的无人飞行器研发和生产商
2016/12/21 全球购物
新西兰领先的内衣店:Bendon Lingerie新西兰
2018/07/11 全球购物
俄罗斯品牌服装和鞋子在线商店:BRIONITY
2020/03/26 全球购物
Deichmann英国:德国鞋类零售商
2021/01/30 全球购物
德国户外商店:eXXpozed
2020/07/25 全球购物
中兴通讯全球官方网站:ZTE
2020/12/26 全球购物
艺术系大学生毕业个人自我评价
2013/09/19 职场文书
建筑公司员工自我鉴定
2014/04/08 职场文书
2014预备党员党课学习心得范文
2014/07/08 职场文书
国际残疾人日广播稿范文
2014/10/09 职场文书
2014年学生会个人工作总结
2014/11/07 职场文书
出纳岗位职责
2015/01/31 职场文书
python爬虫之selenium库的安装及使用教程
2021/05/23 Python
深入理解redis中multi与pipeline
2021/06/02 Redis