基于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 call方法使用说明
Jan 11 Javascript
两个listbox实现选项的添加删除和搜索
Mar 01 Javascript
JS在TextArea光标位置插入文字并实现移动光标到文字末尾
Jun 21 Javascript
JS教程:window.location使用方法的区别介绍
Oct 04 Javascript
jquery easyui 结合jsp简单展现table数据示例
Apr 18 Javascript
非jQuery实现照片散落桌子上,单击放大的LightBox效果
Nov 28 Javascript
JavaScript设计模式之工厂方法模式介绍
Dec 28 Javascript
kindeditor编辑器点中图片滚动条往上顶的bug
Jul 05 Javascript
JS实现密码框根据焦点的获取与失去控制文字的消失与显示效果
Nov 26 Javascript
基于Bootstrap的网页设计实例
Mar 01 Javascript
js实现省市级联效果分享
Aug 10 Javascript
vue组件实现移动端九宫格转盘抽奖
Oct 16 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
PHP中使用Imagick操作PSD文件实例
2015/01/26 PHP
JavaScript.The.Good.Parts阅读笔记(二)作用域&amp;闭包&amp;减缓全局空间污染
2010/11/16 Javascript
Javascript的常规数组和关联数组对比小结
2012/05/24 Javascript
热点新闻滚动特效的js代码
2013/08/17 Javascript
JS 日期比较大小的简单实例
2014/01/13 Javascript
详解JavaScript中的forEach()方法的使用
2015/06/08 Javascript
JS正则表达式比较常见用法
2016/01/26 Javascript
js滑动提示效果代码分享
2016/03/10 Javascript
设置jQueryUI DatePicker默认语言为中文
2016/06/04 Javascript
手机端点击图片放大特效PhotoSwipe.js插件实现
2016/08/24 Javascript
Servlet实现文件上传,可多文件上传示例
2016/12/05 Javascript
react-native使用react-navigation进行页面跳转导航的示例
2017/09/07 Javascript
Vue动态控制input的disabled属性的方法
2018/06/26 Javascript
浅析vue-router jquery和params传参(接收参数)$router $route的区别
2018/08/03 jQuery
node.js的http.createServer过程深入解析
2019/06/06 Javascript
vue如何限制只能输入正负数及小数
2019/07/04 Javascript
微信小程序scroll-view点击项自动居中效果的实现
2020/03/25 Javascript
vue中el-input绑定键盘按键(按键修饰符)
2020/07/22 Javascript
toString.call()通用的判断数据类型方法示例
2020/08/28 Javascript
[48:52]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第一局
2016/02/25 DOTA
python判断图片宽度和高度后删除图片的方法
2015/05/22 Python
基于Python函数的作用域规则和闭包(详解)
2017/11/29 Python
python+matplotlib实现鼠标移动三角形高亮及索引显示
2018/01/15 Python
Django配置celery(非djcelery)执行异步任务和定时任务
2018/07/16 Python
python中时间、日期、时间戳的转换的实现方法
2019/07/06 Python
python logging模块的使用总结
2019/07/09 Python
flask框架路由常用定义方式总结
2019/07/23 Python
Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析
2019/08/13 Python
Python开发之pip安装及使用方法详解
2020/02/21 Python
Pytorch 扩展Tensor维度、压缩Tensor维度的方法
2020/09/09 Python
利用python批量爬取百度任意类别的图片的实现方法
2020/10/07 Python
如何清空Session
2015/02/23 面试题
农村婚礼司仪主持词
2015/06/29 职场文书
小学运动会前导词
2015/07/20 职场文书
Python import模块的缓存问题解决方案
2021/06/02 Python
JVM之方法返回地址详解
2022/02/28 Java/Android