🎉开发者的福音:TinyVue 组件库文档大优化!类型更详细,描述更清晰!
你好,我是 Kagol。
前言
从今年2月份开源以来,有不少朋友给我们 TinyVue 组件库提了文档优化的建议,这些建议都非常中肯,我们也在持续对文档进行优化,并且从中总结出了大家对于文档优化的一些共性问题,形成了一份
为了提升开发者阅读文档的体验,从9月份至今,我们花了整整三个月时间对组件的 demo / api 文档进行全面的优化。
开源不易,请给 TinyVue 点个 Star 鼓励下,感谢你对我们 OpenTiny 的大力支持
源码:https://github.com/opentiny/tiny-vue
我们来看下优化前后的对比效果吧。
以 DatePicker 组件为例。
1 组件 API 按照字典顺序排序
优化前组件的 props / events / methods / slots 排列比较乱,没有规律,不方便寻找。

优化后按照字典顺序排列,符合预期,查找方便。

2 更详细的组件 API 类型
优化前组件 props / events 等的类型不够细致,要了解组件的使用方式,还得跳转到 Demo 里面查看代码才知道怎么使用,不太方便,而且 Demo 里面可能没有覆盖到这个 API 的所有用法。
比如 picker-options 这个属性,API 表格里的类型是 Object,具体可以配置什么需要到 Demo 里才知道,而 Demo 里也只显示了 firstDayOfWeek 和 shortcuts 两个配置项的用法,其中的 shortcuts 也只演示了 text 和 onClick 两个配置项的用法。
优化后每个 props / events 都补充了详细的类型定义。
- 内容不长的,比如 align,就直接写在 API 表格里,'left' | 'center' | 'right'
- 内容太长的,直接放表格里影响阅读,比如 picker-options,就定义一个类型 IPickerOptions,点击可以直接跳转到具体的类型定义,非常方便
我们来看下 IPickerOptions 的定义。
interface IPickerOptions {
  // 每周的第一天是星期几,默认值是7,也就是星期天
  firstDayOfWeek: number
  // 实现部分禁用,此时只能选择一部分日期
  disabledDate: (time: Date) => boolean
  // 选中日期后执行的回调,需要与 daterange 或 datetimerange 类型配合使用才生效
  onPick: (range: { minDate: Date, maxDate: Date }) => void
  // 快捷选项
  shortcuts: {
    text: string
    onClick: (picker: { $emit: (type: string, date: Date) => void }) => void
    type: 'startFrom' | 'EndAt'
    startDate: Date
    endDate: Date
  }[]
}
是不是非常清晰。
优化前:

优化后:

详细的类型定义:

3 更合理的 Demo 组织方式
组织良好的演示 Demo 可以方便开发者快速上手使用我们的组件,因此我们花了很多时间讨论和优化组件 Demo 的组织方式,主要包含:
- 对 Demo 的标题进行简化和统一命名规则
- 将相似的 Demo 进行合并和精简
- 美化 Demo,增加必要的留白,避免太拥挤
- 移除 Demo 代码中多余的内容,每个 Demo 专注于演示某个特性
我们还是以 DatePicker 组件为例。
优化前,相似特性的 Demo 较为分散,很难查找。
- 日期单选、周单选、月份单选、年份单选分散在多个 Demo 中,并且年份单选的 Demo 重复
- 日期范围选择、月份范围选择、年份范围选择分散在多个 Demo 中,年份范围选择的 Demo 重复
- 日期多选和年份多选也分散在两个 Demo 中
  
优化后,将分散在多个 Demo 中的单选、多选、范围选择组织成三个 Demo,比之前更加清晰,更容易查找。

除了以上几个优化点之外,我们还对组件的文档做了大量的优化,欢迎朋友们到 TinyVue 官网进行体验。
TinyVue 官网:https://opentiny.design/tiny-vue
如果你在体验过程中,发现有描述不清楚、不合理、不美观之处,也希望你能给我们提交 Issue 进行反馈
https://github.com/opentiny/tiny-vue/issues
感谢你对 TinyVue 开源组件库的大力支持。

开源不易,请给 TinyVue 点个 Star 鼓励下,感谢你对我们 OpenTiny 的大力支持
源码:https://github.com/opentiny/tiny-vue
我们也非常欢迎你参与到 TinyVue 的贡献中,帮助我们一起优化组件文档,或者修复组件缺陷,给组件增加新特性,你可以根据自己的兴趣和能力选择合适的任务。
添加微信小助手:opentiny-official,一起参与共建!
联系我们
GitHub:https://github.com/opentiny/tiny-vue(欢迎 Star )
官网:https://opentiny.design/tiny-vue
B站:https://space.bilibili.com/15284299
公众号:OpenTiny
🎉开发者的福音:TinyVue 组件库文档大优化!类型更详细,描述更清晰!的更多相关文章
- Web 前端 UI 组件库文档自动化方案 All In One
		Web 前端 UI 组件库文档自动化方案 All In One 需求 自动化 动态 好用 markdown element-ui 中示例和说明按照一定规则写在md文件中,调用md-loader将md文 ... 
- 使用VitePress搭建及部署vue组件库文档
		每个组件库都有它们自己的文档.所以当我们开发完成我们自己的组件库必须也需要一个组件库文档.如果你还不了解如何搭建自己的组件库可以看这里->从零搭建Vue3组件库.看完这篇文章你就会发现原来搭建和 ... 
- Vitepress搭建组件库文档(上)—— 基本配置
		在 vite 出现以前,vuepress 是搭建组件库文档不错的工具,支持以 Markdown 方式编写文档.伴随着 vite 的发展,vitepress 已经到了 1.0.0-alpha.22 版本 ... 
- Vitepress搭建组件库文档(下)—— 组件 Demo
		上文 <Vitepress搭建组件库文档(上)-- 基本配置>已经讨论了 vitepress 搭建组件库文档的基本配置,包括站点 Logo.名称.首页 home 布局.顶部导航.左侧导航等 ... 
- Vue3 企业级优雅实战 - 组件库框架 - 7 组件库文档的开发和构建
		该系列已更新文章: 分享一个实用的 vite + vue3 组件库脚手架工具,提升开发效率 开箱即用 yyg-cli 脚手架:快速创建 vue3 组件库和vue3 全家桶项目 Vue3 企业级优雅实战 ... 
- 使用dumi生成react组件库文档并发布到github pages
		周末两天玩了下号称西湖区东半球最牛逼的react文档站点生成工具dumi,顺带结合github pages生成了react-uni-comps文档站, 一套弄下来,感觉真香,现在还只是浅尝,高级的特性 ... 
- vuepress搭建UI组件库文档踩坑篇
		为了实现组件效果预览及代码展示可折叠功能,使用了插件vuepress-plugin-demo-container 相关配置可参考官网说明文档 第一步 安装插件 npm i - D vuepress-p ... 
- 把 MWeb Lite 的文档库文档和数据搬到 MWeb 正式版中
		MWeb Lite 版的文档库中的文档要搬到 MWeb 正式版中,如果 Lite 版的文档中没有图片或者只有少量图片,可以用导入导出为 Markdown 的方法. 否则的话请用以下方式(注意下面这个方 ... 
- WPF:将Office文档、任意类型文件嵌入到EXE可执行文件中
		原文:WPF:将Office文档.任意类型文件嵌入到EXE可执行文件中 版权声明:本文为博主原创文章,未经博主允许可以随意转载 https://blog.csdn.net/songqingwei198 ... 
- API文档大集合
		[API文档大集合] sklearn API:http://sklearn.apachecn.org/cn/0.19.0/tutorial/index.html pandas API:http://p ... 
随机推荐
- 【Unity3D】高斯模糊特效
			1 高斯模糊原理  边缘检测特效中使用了卷积运算进行了边缘检测,本文实现的高斯模糊特效同样使用了卷积运算,关于卷积核和卷积运算的概念,读者可以参考边缘检测特效.  本文完整资源见→Unity3D高 ... 
- xss-labs靶场
			在线XSS-labs靶场:https://xssaq.com/yx/ 靶场搭建 靶场是直接使用docker搭建的 docker pull vulfocus/xss-labs 启动靶场 docker r ... 
- ignite
			目录 简介 运行 制作vm文件系统 制作vm基础文件系统文件 创建contianerdClient 创建cniInstance 拉取基础镜像 创建基础文件系统文件 制作vm内核文件 Create vm ... 
- 利用CI机制管控jar依赖树
			1. 现状·问题 你还记得你排查jar冲突的付出么? 为了有效控制jar包更新带来的未知jar引入和变动,我们经常使用dependency-tree来查看依赖关系排查问题,通常是出现问题再被动分析和排 ... 
- Django模板(请用Django2.0版本完成)
			1. 在learn目录下新建一个templates文件夹,里面新建一个home.html (1) 很简单的,就直接右键learn,新建文件夹,完成后,继续右键templates,创建文档,后缀名为ht ... 
- Web安全漏洞解决方案
			1.已解密的登录请求 推理: AppScan 识别了不是通过 SSL 发送的登录请求. 测试请求和响应: 1.1.1 产生的原因 登录接口,前端传入的密码参数没有经过md5的加密就直接传给了后端 1. ... 
- Solution -「CF 1073G」Yet Another LCP Problem
			Description Link. 给定字符串,正整数集合 \(A,B\),满足 \(\forall u\in A,v\in B,1\le u,v\le n\). 求 \(\sum_{i\in A}\ ... 
- 临时表、视图与系统函数_Lab2
			MySQL数据库操作 Lab1.md body { font-family: var(--vscode-markdown-font-family, -apple-system, BlinkMacSys ... 
- 2020/5/8—cf,我裂开来
			呜呜呜我爆零了呜呜呜ljll 嗯T1T2防爆零的没了呜呜呜在此纪念可怜的yjz大佬21发AC 太惨了(逃 先来说说我们都有些啥题目吧... T1 嗯,裂开了,当场裂开我一看!桶排!然后实现,嗯?嗯!嗯 ... 
- 【v2v迁移】Xen2kvm 迁移-Windows篇
			迁移环境: 源平台:华为FusionComputeV100R006C10SPC101 目标平台:基于KVM虚拟化的云平台,本文以原生的libvirt为例 虚拟机:Windows server 2012 ... 
