[开源]基于Vue.js实现的精致移动端组件库,质量可靠、极致体验

开源系统分类系统
2026-06-28 08:36 15 次浏览 • 0 次下载 0KB
[开源]基于Vue.js实现的精致移动端组件库,质量可靠、极致体验

一、开源项目简介

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 模块。