基于 Vue 2 与 Bootstrap 3 的组件库 uiv 发布啦

一点微小的工作。

Demo: https://uiv.wxsm.space

Github: https://github.com/wxsms/uiv

NPM: https://www.npmjs.com/package/uiv

项目使用 MIT 许可,随便用。

简单介绍

做这个东西的初衷是,想要一些简单的、基础的、常用的基于 Vue 2 与 Bootstrap 3 的可重用组件。因为我还有一个目标:一个灵活健壮的、类似 MEAN.js 这样的 Vue + Node.js + MongoDB 的 Seed 项目。没有一个简单的组件库,项目无法进行。

其实现在社区有很多开源作品了,但是简单来说,就是觉得不是很满意,怎么说呢:

  • VueStrap 这个作品虽然出现的比较早也比较全,然而貌似止步在 Vue 1 了,更新比较慢,不客气地说,里面很多组件其实是不好用的。只要稍稍对比下 Angular UI Bootstrap 就能发现差距,有些东西从设计上就有问题。
  • Bootstrap-Vue 这个作品是基于 Bootstrap 4 的,不知道为什么,就是不太喜欢。
  • Material Design 的作品有两三个,但实际使用上,感觉还是 Bootstrap 的应用场景更多,也更轻量。
  • 至于 ElementUI,做得非常好非常全,然而是自立门户做的,跟 Bootstrap 与 Material 都没有关联。

我想要的是:

  • 能够完全使用到 Bootstrap CSS
  • 很多方面只要像 Angular UI Bootstrap 靠齐就行,毕竟经过了 Angular 1 时代的考验,事实证明它是最好用的
  • 最小的体积
  • 纯净的依赖,没有除了 Vue 与 Bootstrap CSS 以外的东西
  • 主流浏览器支持

好吧,说白了就是想自己做。跟前辈们做的东西好与不好无关。反正开源作品,人畜无害。

做着做着,于是就有了这个东西。感谢静纯的参与,帮我完成了一部分工作。

项目现状

目前已完成的组件有:

  • Alert (警告)
  • Carousel (轮播)
  • Collapse (收缩与展开)
  • Date Picker (日期选择)
  • Dropdown (下拉)
  • Modal (模态框)
  • Pagination (分页)
  • Popover (弹出框)
  • Tabs (标签页)
  • Time Picker (时间选择)
  • Tooltip (提示)
  • Typeahead (自动补全)

共 12 个。

依赖只有 Vue 2 与 Bootstrap 3,最终打包压缩 + Gzip 后体积约 9 KB,应该算是比较轻比较小的啦。

所有组件在主流浏览器(Chrome / Firefox / Safari)与 IE 9 / 10 / 11 下都经过了测试,暂时没有发现问题。当然,由于 IE 9 不支持 Transition 属性,因此是没有动画效果的,不过功能正常,不影响使用流程。

当然,除了以上的浏览器环境测试以外,还进行了完善的单元测试,组件代码测试覆盖率达到 99%(Github 与项目主页上的测试率标签显示为 97%,因为其中包括了文档源码,与实际组件无关)。可以保证在大多数情况下正常工作。

Road Map

接下来要做的事:

  • 把自动化的 E2E 测试搞起来,目前项目使用的自动测试只有单元测试,无法自动测试不同的浏览器,这个很重要,保证项目在跨浏览器上的质量
  • 收集一些意见与反馈,完善一下现有的东西
  • 将 Date Picker 与 Time Picker 组合
  • Multi Select (多选组件)
  • 等等等等……

有问题请提 issue,一定尽快解决。同时也欢迎 PR

最后,欢迎使用。