[开源]基于Vue.js实现的精致移动端组件库,质量可靠、极致体验
开源系统分类系统
![[开源]基于Vue.js实现的精致移动端组件库,质量可靠、极致体验](https://yy123.ink/api/img/1782606986090-4p6xwg.jpg)
一、开源项目简介
Cube-UI 是基于 Vue.js 实现的精致移动端组件库。
二、开源协议
使用Apache-2.0开源协议
三、界面展示

四、功能概述
特性
- 质量可靠
- 由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。
- 体验极致
- 以迅速响应、动画流畅、接近原生为目标,在交互体验方面追求极致。
- 标准规范
- 遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。
- 扩展性强
- 支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
组件
基础
- Button 按钮
- Loading 加载中
- Tip 提示
- Toolbar 工具条
- TabBar 选项卡
表单
- Checkbox 复选框
- CheckboxGroup 复选框组
- Radio 单选框
- Input 输入框
- Textarea
- Select 选择
- Switch 开关切换
- Rate 评级
- Validator 校验器
- Upload 上传
- Form 表单
弹层
- Popup
- Toast 提醒
- Picker 选择器
- CascadePicker 级联选择器
- DatePicker 日期选择器
- TimePicker 时间选择器
- SegmentPicker 段选择器
- Dialog 弹框
- ActionSheet 操作菜单
- Drawer 抽屉
- ImagePreview 图片预览
五、技术选型
绝大多数的弹层类组件可以通过组件调用和 API 调用,来看示例(Toast 为例):
组件调用:
<template>
<cube-button @click="showToast">show toast</cube-button>
<cube-toast ref="toast" :txt="toastTxt"></cube-toast>
</template>
<script>
export default {
data() {
return {
toastTxt: 'toast content'
}
},
methods: {
showToast() {
this.$refs.toast.show()
}
}
}
</script>
API 调用:
<template>
<cube-button @click="showToast">show toast</cube-button>
</template>
<script>
export default {
data() {
return {
toastTxt: 'toast content'
}
},
methods: {
showToast() {
this.$createToast({
txt: this.toastTxt
}).show()
}
}
}
</script>
两种方式都可以,但是我们推荐后者,通过 $createXxYy API 来调用;通过 API 调用的话,这个弹框是附加到 body 元素下的,这样的好处是可以不受外层样式的影响,因为组件调用的话,很容易受到外层 transform, overflow 等样式的影响。
注意这个 API 的名字的组合就是:$create + ${组件名字},例如 ActionSheet 组件的话,API 名字就是 $createActionSheet。
滚动
- Scroll 滚动
- Slide 幻灯片
- IndexList 索引列表
- Swipe 滑块
- Sticky 吸附
- ScrollNavBar 滚动导航条
- ScrollNav 滚动导航
滚动类组件一般都是基于 better-scroll 实现,而 Scroll 组件就是对 better-scroll 的封装。
模块
除了组件之外,cube-ui 还有一些特殊的模块。
style
样式部分,如果你是在按需引入使用的场景下,那么建议在入口文件处也要引入这个模块,因为它包含基础的 reset、基础通用样式以及内置 icon。
详见 style 模块。
create-api
有些时候,开发者可能也需要自己封装的组件支持 API 式调用,此时可以通过引入 create-api 模块或者通过全局的 Cube.createAPI 接口来达到封装目的。
详见 create-api 模块。
better-scroll
better-scroll 是组件库依赖的一个库,为了避免重复引入问题,我们暴露出了这个模块。
详见 better-scroll 模块。
评论