0.3.17 • Published 4 years ago

@deepjs/uni-ccui v0.3.17

Weekly downloads
34
License
Apache-2.0
Repository
-
Last release
4 years ago

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 专用 一系列小工具,细粒度拆分

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

组件列表

组件名 cc-xxx

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

4 years ago

0.3.16

4 years ago

0.3.14

5 years ago

0.3.13

5 years ago

0.3.12

5 years ago

0.3.11

5 years ago

0.3.9

5 years ago

0.3.10

5 years ago

0.3.8

5 years ago

0.3.7

5 years ago

0.3.6

5 years ago

0.3.5

5 years ago

0.3.4

5 years ago

0.3.2

5 years ago

0.3.3

5 years ago

0.3.0

5 years ago

0.2.9

5 years ago

0.2.7

5 years ago

0.2.8

5 years ago

0.2.6

5 years ago

0.2.3

5 years ago

0.2.4

5 years ago

0.2.1

5 years ago

0.2.0

5 years ago

0.1.9

5 years ago

0.1.8

5 years ago

0.1.7

5 years ago

0.1.6

5 years ago

0.1.4

5 years ago

0.1.5

5 years ago

0.1.3

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago

0.0.9

5 years ago

0.0.8

5 years ago

0.0.7

5 years ago

0.0.6

5 years ago

0.0.3

5 years ago

0.0.5

5 years ago

0.0.4

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago