基于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高级程序设计 扩展--关于动态原型
Nov 09 Javascript
关于js注册事件的常用方法
Apr 03 Javascript
图片轮换效果实现代码(点击按钮停止执行)
Apr 12 Javascript
jQuery把表单元素变为json对象
Nov 06 Javascript
js中document.write使用过程中的一点疑问解答
Mar 20 Javascript
node.js报错:Cannot find module 'ejs'的解决办法
Dec 14 Javascript
判断div滑动到底部的scroll实例代码
Nov 15 Javascript
jQuery实现的滑块滑动导航效果示例
Jun 04 jQuery
Vue-cli@3.0 插件系统简析
Sep 05 Javascript
JS基于开关思想实现的数组去重功能【案例】
Feb 18 Javascript
vue限制输入框只能输入8位整数和2位小数的代码
Nov 06 Javascript
vue插件--仿微信小程序showModel实现模态提示窗功能
Aug 19 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下载文件的代码示例
2012/06/29 PHP
Zend Studio使用技巧两则
2016/04/01 PHP
网页自动刷新,不产生嗒嗒声的一个解决方法
2007/03/27 Javascript
Javascript的构造函数和constructor属性
2010/01/09 Javascript
window.opener用法和用途实例介绍
2013/08/19 Javascript
jquery 实现密码框的显示与隐藏示例代码
2013/09/18 Javascript
js浮点数保留两位小数点示例代码(四舍五入)
2013/12/26 Javascript
jquery五角星评分插件示例分享
2014/02/21 Javascript
ExtJS4如何给同一个formpanel不同的url
2014/05/02 Javascript
HTML5之WebSocket入门3 -通信模型socket.io
2015/08/21 Javascript
jQuery Checkbox 全选 反选的简单实例
2016/11/29 Javascript
基于JavaScript实现图片剪切效果
2017/03/07 Javascript
Vue项目中使用Vux的安装过程
2018/05/01 Javascript
Vue Element UI + OSS实现上传文件功能
2019/07/31 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
2019/10/23 Javascript
Python2中的raw_input() 与 input()
2015/06/12 Python
python 开发的三种运行模式详细介绍
2017/01/18 Python
基于python爬虫数据处理(详解)
2017/06/10 Python
python中将字典形式的数据循环插入Excel
2018/01/16 Python
用Eclipse写python程序
2018/02/10 Python
解决pyinstaller打包pyqt5的问题
2019/01/08 Python
基于Python实现ComicReaper漫画自动爬取脚本过程解析
2019/11/11 Python
Django框架反向解析操作详解
2019/11/28 Python
pycharm 2019 最新激活方式(pycharm破解、激活)
2020/09/22 Python
Python filter过滤器原理及实例应用
2020/08/18 Python
解决HTML5手机端页面缩放的问题
2017/10/27 HTML / CSS
国际旅客访问北美最大的汽车租赁提供商:Alamo Rent A Car
2018/06/13 全球购物
REN Clean Skincare官网:英国本土有机护肤品牌
2019/02/23 全球购物
远程学习的教学用品和家庭学习资源:Really Good Stuff
2020/04/27 全球购物
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/09/18 面试题
爷爷追悼会答谢词
2014/01/24 职场文书
护士自我鉴定怎么写
2014/02/07 职场文书
元旦联欢会感言
2014/03/04 职场文书
汽车机修工岗位职责
2014/03/06 职场文书
国家奖学金获奖感言
2014/08/16 职场文书
Oracle用户管理及赋权
2022/04/24 Oracle