介绍

cube-ui 是基于 Vue.js 实现的精致移动端组件库。

特性

  • 质量可靠

    由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。

  • 体验极致

    以迅速响应、动画流畅、接近原生为目标,在交互体验方面追求极致。

  • 标准规范

    遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。

  • 扩展性强

    支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。

组件

基础

表单

弹层

绝大多数的弹层类组件可以通过组件调用和 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

滚动

滚动类组件一般都是基于 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 模块