@deepjs/uni-ccui v0.3.17
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 存在个安装依赖编译慢问题,推荐用 lesscli 编译模式,还是没 HbuildX 编译稳定,有时出现一些奇怪的错误- 可以挖掘下,编译软件用的哪个版本的依赖
/Applications/HBuilderX-Alpha.app/Contents/HBuilderX/plugins/uniapp-cli/package.json
- 有点遗憾,使用上面的版本,parse.vue 还是报错,还未找到原因
- 突然发现是项目目录的原因,直接在 src 运行不报错,在根目录运行就出现上面的问题,所以 cli 如能改变编译目录,就 OK 了
- 不要将外部组件直接copy进来,如需要,考虑是否贴合我们的使用场景
关于样式
BEM的命名规矩很容易记:block-name__element-name--modifier-name,也就是模块名 + 元素名 + 修饰器名
.cc-block__element--bottom
.cc-upload__container-box
BEM思想,是不考虑结构的,不使用子代选择器,不需要原子类(如ellipsis)
工具类复用
uni-app 专用 一系列小工具,细粒度拆分
- uni-axios
- uni-geo
- uni-pull
- pullUp 滚动加载
- pullDown 下拉刷新
- uni-request
- uni-router uni路由
- uni-stat
- uni-storage
- uni-utils
- checkUpdate 检查更新
- errorReport 错误上报
- vuex-persistedstate 持久化存储 vuex
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), // 删除
},
}),
],
})
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago