Vue实验室

mint-ui 源码学习一 —— 项目整体分析

2018-09-07  本文已影响27人  VioletJack

本文主要介绍 mint-ui 的目录结构、所有的技术栈以及组件库的搭建知识。

mint-ui 项目整体学习

项目目录

看图说话~

组件库如何应用到 Vue 项目中?

组件库的安装其实就是使用了 Vue 的插件定义和使用的方式。可以看下 mint-ui 定义的插件公开方法 install

import Button from '../packages/button';
import Toast from '../packages/toast';
import Indicator from '../packages/indicator';
import MessageBox from '../packages/message-box';
import InfiniteScroll from '../packages/infinite-scroll';
import '../src/assets/font/iconfont.css'; // 字体样式

const version = '2.2.13';
const install = function(Vue, config = {}) {
  // 避免重复安装
  if (install.installed) return;
  // 注册组件
  Vue.component(Button.name, Button);
  // 使用插件
  Vue.use(InfiniteScroll);
  // 添加实例方法
  Vue.$messagebox = Vue.prototype.$messagebox = MessageBox;
  Vue.$toast = Vue.prototype.$toast = Toast;
  Vue.$indicator = Vue.prototype.$indicator = Indicator;
};

组件库的 install 方法一般就 3 种行为:

  1. 全局注册组件库
  2. 使用插件方法
  3. 添加全局实例方法

这也就是我们组件库中常用的功能了。

想看懂 mint-ui 源码需要知道什么技术栈?

我在看组件库的时候在找 postcss-salad 上花了点时间。

如何搭建类似 mint-ui 的组件库?

其实市面上完善的通用组件库已有不少,像 Vue 方面的有 ElementUIVantMintUIiViewAntd 好像也出了 Vue 版本。所以,个人感觉重复造轮子无意义,但是以学习的态度去将一些常用到的业务组件抽离出来做一个组件库也是极好的提高生产效率的方式。
说说我搭建的个人组件库的过程:

mint-ui 的 src 目录下都有些什么,干啥用的?

相对于 element-ui 的 utils 目录,mint-ui 的 utils 目录真的是非常少的。不过其中的方法还是值得借鉴和学习的。

最后

文章内容较少,只是先起个头~
这个整体分析没太多讲的,大致了解下,也是自己整理下思路。为接下来一系列的文章做热身。
Vue 实验室之前有分析过一些 Element 的简单组件库,之后的 mint-ui 组件学习只会对博主感兴趣的、比较有意思的组件进行分析和学习。如有需求也可以评论留言哦。
其实能拥有一个私人组件库还是一件非常酷的事情啦让我们一起撸一个个人组件库

上一篇下一篇

猜你喜欢

热点阅读