基于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 相关文章推荐
网页前端优化之滚动延时加载图片示例
Jul 13 Javascript
AngularJS中取消对HTML片段转义的方法例子
Jan 04 Javascript
jQuery实现购物车计算价格功能的方法
Mar 25 Javascript
JS实现超简单的仿QQ折叠菜单效果
Sep 21 Javascript
JQuery实现网页右侧随动广告特效
Jan 17 Javascript
关于webuploader插件使用过程遇到的小问题
Nov 07 Javascript
ES6通过babel转码使用webpack使用import关键字
Dec 13 Javascript
基于js 本地存储(详解)
Aug 16 Javascript
js数组实现权重概率分配
Sep 12 Javascript
利用JavaScript的%做隔行换色的实例
Nov 25 Javascript
详解基于Koa2开发微信二维码扫码支付相关流程
May 16 Javascript
使用vue-router与v-if实现tab切换遇到的问题及解决方法
Sep 07 Javascript
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
php4的session功能评述(一)
2006/10/09 PHP
php学习之运算符相关概念
2011/06/09 PHP
PHP源代码数组统计count分析
2011/08/02 PHP
php mail to 配置详解
2014/01/16 PHP
thinkphp备份数据库的方法分享
2015/01/04 PHP
php简单分页类实现方法
2015/02/26 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
2019/11/24 PHP
Jquery弹出窗口插件 LeanModal的使用方法
2012/03/10 Javascript
ExtJS下书写动态生成的xml(兼容火狐)
2013/04/02 Javascript
Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因
2013/05/07 Javascript
3种不同方式的焦点图轮播特效分享
2013/10/30 Javascript
js、jquery图片动画、动态切换示例代码
2014/06/03 Javascript
javascript实现10个球随机运动、碰撞实例详解
2015/07/08 Javascript
BootStrap实现邮件列表的分页和模态框添加邮件的功能
2016/10/13 Javascript
vue.js利用defineProperty实现数据的双向绑定
2017/04/28 Javascript
webstorm中配置nodejs环境及npm的实例
2018/05/15 NodeJs
基于vue.js中关于下拉框的值默认及绑定问题
2018/08/22 Javascript
详解ESLint在Vue中的使用小结
2018/10/15 Javascript
js与jquery获取input输入框中的值实例讲解
2020/02/27 jQuery
基于JavaScript实现十五拼图代码实例
2020/04/26 Javascript
微信小程序仿抖音视频之整屏上下切换功能的实现代码
2020/05/24 Javascript
原生js实现九宫格拖拽换位
2021/01/26 Javascript
Python 通过调用接口获取公交信息的实例
2018/12/17 Python
tensorflow模型继续训练 fineturn实例
2020/01/21 Python
python如何通过twisted搭建socket服务
2020/02/03 Python
解决tensorboard多个events文件显示紊乱的问题
2020/02/15 Python
Python3.7 读取音频根据文件名生成脚本的代码
2020/04/07 Python
css3中背景尺寸background-size详解
2014/09/02 HTML / CSS
为女性购买传统的印度服装和婚纱:Kalkifashion
2019/07/22 全球购物
保洁主管岗位职责
2013/11/20 职场文书
体育教师自荐信范文
2013/12/16 职场文书
小区的门卫岗位职责
2014/10/01 职场文书
2015年小学生自我评价范文
2015/03/03 职场文书
信访工作个人总结
2015/03/03 职场文书
七一慰问简报
2015/07/20 职场文书
Mac环境Nginx配置和访问本地静态资源的实现
2021/03/31 Servers