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

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 需要如下一些参数:

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

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

接下来安装 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>

则会得到如下页面:

预告

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

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

时间: 2024-08-10 21:28:59

基于VUE.JS的移动端框架Mint UI的相关文章

基于 Vue.js 的移动端组件库mint-ui实现无限滚动加载更多

通过多次爬坑,发现了这些监听滚动来加载更多的组件的共同点, 因为这些加载更多的方法是绑定在需要加载更多的内容的元素上的, 所以是进入页面则直接触发一次,当监听到滚动事件之后,继续加载更多, 所以对于无限滚动加载不需要写首次载入列表的函数, 代码如下: html: //父组件 <div v-infinite-scroll="loadMore" infinite-scroll-disabled="loading" infinite-scroll-distance=

Mint-ui(基于 Vue.js 的移动端组件库)的使用

官网: http://mint-ui.github.io/#!/zh-cn 1.安装包 npm install mint-ui -S 2.导包 import Vue from 'vue'import MintUi from 'mint-ui' // 导入全部组件import 'mint-ui/lib/style.css'Vue.use(MintUi) 3.css类mint-ui组建的使用 <template> <div>  <mt-button type="defa

《基于Vue.js的Web前端应用研究》文献阅读(十五)

一.基本信息 标题:基于Vue.js的Web前端应用研究 时间:2017 来源:科技与创新 关键词:Web前端:Vue.js:JavaScript组件:Vue框架 二.研究内容 1.主要内容: 随着互联网的迅猛发展,用户对Web前端的使用体验.交互操作流程.外观有了更高的要求.特别是Web系统中越来越多的数据处理和业务逻辑开始偏向前端,导致Web前端工作量扩大,代码量增加.如果仍然采用传统的方式开发设计Web前端,会导致前期开发度和后期维护难度增大,可扩展性变差.为了提高开发效率和代码复用率,越

基于Vue.js 2.x系列的后台管理系统解决方案

基于Vue.js 2.x系列 + Element UI 的后台管理系统解决方案. github地址:https://github.com/lin-xin/manage-systemdemo地址:http://work.fengdb.com功能包括:Element UI登录/注销表格表单图表富文本编辑器markdown编辑器图片拖拽/裁剪上传支持切换主题色

基于vue.js的简单用户管理

功能描述:添加.修改.搜索过滤 效果图: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <title>简单用户管理</title> 5 <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"

基于vue.js的图片预览组件2.0.1

基于vue.js的图片预览组件 Github github 安装 npm install enlargeimg --save-dev import enlargeimg from 'enlargeimg'; 基础用法 <enlargeImg :data="files"></enlargeImg> export default { name: 'hello', data () { return { msg: 'Welcome to Your Vue.js App'

一次基于Vue.Js的用户体验优化

.mytitle { background: #2B6695; color: white; font-family: "微软雅黑", "宋体", "黑体", Arial; font-size: 18px; font-weight: bold; height: 25px; line-height: 25px; margin: 15px 0 !important; padding: 5px 0 5px 20px; width: 97% } .arti

vue-waterfall2 基于Vue.js 瀑布流组件

vue-waterfall2 1.宽度自适应,数据绑定特效(适用于上拉加载更多) 2.自定义程度高 3.使用极为简便,适用于PC/移动端 4.提供resize(强制刷新布局-适用于下拉刷新)/mix(扰乱布局) API,一般情况下不需要用到 5.后期将持续更新,提供animation(过渡动画) Demo DEMOGITHUB Installation npm install --save vue-waterfall2 Usage 注意: 1.itemWidth需要与gutterWidth一起使

一款基于vue.js 和node构建个人博客项目

前言 本项目是一款个人学习的博客项目,主要是为了学习vue2 和 node.js.另外涉及到MySQL redis nginx 等技术栈知识 项目地址 预览地址 (PC或者手机) > 注意:PC端支持markdown编辑博客,但是手机端不支持编辑,仅支持查看博客内容 博客预览地址:node后台版本 预览账号 账号:test 密码:123 技术栈 前端:html.css.sass.ES6.webpack.vue-cli.vue2.vuex.vue-router.axios.element-ui 后