@deepjs/uni-ccui

0.3.17 • Public • Published

uni-ccui

基于 uni-app 的 ui 框架 uni-ccui

优先使用 uni-ui 组件库,在其不支持或支持存在差异的情况下,使用 uni-ccui

TIP:

  • 优先使用背景图,而非 image 标签 参考-本地图片

  • 使用css样式,扩大可点击区域:

    .human {
      position: relative;
      &:before {
        content: '';
        position: absolute;
        top: -10px; bottom: -10px; left: -10px; right: -10px;
      };
    }

如何使用:

配置 uni-app 项目 pages.json 中的 easycom 项

// 自动按需引入
"easycom": {
  "autoscan": true,
  "custom": {
    // "^uni-(.*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue",
    "^cc-(.*)": "@deepjs/uni-ccui/lib/cc-$1/cc-$1.vue",
    "^dd-(.*)": "@/components/cc-$1/cc-$1.vue",
  }
}

模板中使用

<template>
  <cc-countdown time="9000" format="H:F:S" @timeup="timeUp">
</template>

<script>
export default {
  methods: {
    timeUp() {
      console.log('计时结束')
    },
  },
}
</script>

TIP:

  • 文件名或者文件夹名中不允许出现 @ 符号,static/cart/add@2x.png,请调整后重试
  • 使用 yarn 管理依赖
  • 各组件要使用微信小程序,支付宝小程序同时测试验证通过
  • 使用系统图标,需要手动引入系统图标的 iconfont (main.js 中)
    • import '@deepjs/uni-ccui/style/iconfont.css'

注意事项

  • 组件减少对公共样式依赖,除细线方案外
  • 组件减少对项目公共业务方法依赖, 提取到第三方包,直接引用
  • TODO: 统一事件 $emit 传递数据的格式
  • 鉴于 sass 存在个安装依赖编译慢问题,推荐用 less
  • cli 编译模式,还是没 HbuildX 编译稳定,有时出现一些奇怪的错误
    • 可以挖掘下,编译软件用的哪个版本的依赖
    • /Applications/HBuilderX-Alpha.app/Contents/HBuilderX/plugins/uniapp-cli/package.json
    • 有点遗憾,使用上面的版本,parse.vue 还是报错,还未找到原因
    • 突然发现是项目目录的原因,直接在 src 运行不报错,在根目录运行就出现上面的问题,所以 cli 如能改变编译目录,就 OK 了
  • 不要将外部组件直接copy进来,如需要,考虑是否贴合我们的使用场景

关于样式

https://bemcss.com/

BEM的命名规矩很容易记:block-name__element-name--modifier-name,也就是模块名 + 元素名 + 修饰器名

.cc-block__element--bottom

.cc-upload__container-box

BEM思想,是不考虑结构的,不使用子代选择器,不需要原子类(如ellipsis)

工具类复用

uni-app 专用 一系列小工具,细粒度拆分

  • [ ] uni-axios
  • [ ] uni-geo
  • [x] uni-pull
    • pullUp 滚动加载
    • pullDown 下拉刷新
  • [ ] uni-request
  • [ ] uni-router uni路由
  • [ ] uni-stat
  • [x] uni-storage
  • [x] uni-utils
    • checkUpdate 检查更新
    • errorReport 错误上报
  • [x] vuex-persistedstate 持久化存储 vuex

shvl: shvl.set(obj, 'a.b.c', 2);

组件列表

组件名 cc-xxx

  • 基础组件
    • [ ] badge 徽标
    • [ ] calendar 日历
    • [ ] quick-nav 快速导航 !!!
    • [ ] card 卡片
    • [ ] cell cell列表项 !!!
    • [ ] cell-group 分组 !!
    • [ ] collapse 折叠面板
    • [ ] combox 可选择输入框
    • [x] countdown 倒计时 !!
    • [ ] drawer 抽屉
    • [x] divider 分割线
    • [ ] editor 编辑器
    • [ ] fab 悬浮按钮
    • [ ] fav 收藏按钮
    • [ ] grid 宫格
    • [ ] header-bar 标题栏(支持适配 iPhoneX)
    • [ ] header 标题
    • [x] html 复杂富文本解析 !!!
    • [x] icon iconfont 图标 !!!
    • [ ] image 图片(支持大小设定) !!
    • [ ] indexed-bar 索引栏
    • [ ] indexed-list 索引列表
    • [x] input-number 数字输入框 !!!
    • [ ] link 超链接(支持复制)
    • [ ] list 列表
    • [x] load-more 加载更多 !!
    • [x] marquee 滚动容器
    • [ ] nav-bar 自定义导航栏
    • [x] notice-bar 通告栏 !
    • [x] page 页面容器
    • [ ] pager 分页器
    • [ ] page-result 结果页
    • [ ] picker 选择器 !!
    • [ ] picture 图片预览
    • [x] popup 弹出层 !!!
    • [ ] progress 进度条
    • [ ] pull-list 滚动加载列表 !!! 废弃此版本实现,改为新版
    • [x] rate 评分
    • [x] rich-text 简单富文本展示 !!
    • [ ] search-bar 搜索栏 !!!
    • [ ] share 分享按钮
    • [ ] slider 滑动选择器
    • [ ] stepper 步骤条 !!
    • [ ] sticky 滚动吸顶
    • [ ] swiper swiper图片滚动 !!!
    • [ ] swiper-dot 轮播图指示点 !
    • [ ] swipe-action 滑动操作
    • [ ] switch 开关 !!
    • [ ] textarea 文本区域(带字数控制)
    • [x] transition 过渡动画 !!
    • [ ] tab 简单Tab !!!
    • [x] scroll-tab 支持滚动的Tab !!!
    • [ ] tab-bar 标签栏
    • [ ] tag 标签 !
    • [ ] task 任务
    • [ ] upload 上传组件
    • [ ] waterfall 瀑布流

关于 vuex-persistedstate

支持 uni-app,两个问题

  • 可选择的变更持久化
  • 下次进入使用持久化数据初始化 vuex
import Vue from 'vue'
import Vuex from 'vuex'
import createPersistedState from 'vuex-persistedstate'

import app from './modules/app.js'

Vue.use(Vuex)

export default new Vuex.Store({
  strict: false,
  modules: {
    app,
    user,
  },
  plugins: [
    // 可以有多个持久化实例
    createPersistedState({
      key: 'vuex_temp',  // 状态保存到本地的 key
      // 非Module格式: xxx
      // 使用了Module的格式: ModuleName.xxx
      paths: ['app.config', 'user.userInfo'],  // 要持久化的状态,在state里面取,如果有嵌套,可以 a.b.c
      storage: {  // 存储方式定义(必须同步方法?)
        getItem: (key) => uni.getStorageSync(key), // 获取
        setItem: (key, value) => uni.setStorageSync(key, value), // 存储
        removeItem: (key) => uni.removeStorageSync(key), // 删除
      },
    }),
  ],
})

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
0.3.170latest

Version History

VersionDownloads (Last 7 Days)Published
0.3.170
0.3.140
0.3.130
0.3.120
0.3.110
0.3.100
0.3.90
0.3.80
0.3.71
0.3.60
0.3.40
0.3.30
0.3.00
0.2.90
0.2.80
0.2.70
0.2.60
0.2.30
0.2.40
0.2.10
0.1.90
0.1.70
0.1.60
0.1.50
0.1.40
0.1.30
0.0.90
0.0.80
0.0.70
0.0.60
0.0.50
0.0.40
0.0.30
0.0.20

Package Sidebar

Install

npm i @deepjs/uni-ccui

Weekly Downloads

1

Version

0.3.17

License

Apache-2.0

Unpacked Size

456 kB

Total Files

49

Last publish

Collaborators

  • cloudyan