开发者的福音:TinyVue 组件库文档大优化!类型更详细,描述更清晰!

news2025/1/21 15:30:28

你好,我是 Kagol。

前言

从今年2月份开源以来,有不少朋友给我们 TinyVue 组件库提了文档优化的建议,这些建议都非常中肯,我们也在持续对文档进行优化,并且从中总结出了大家对于文档优化的一些共性问题,形成了一份

《组件 demo 和 api 文档编写规范》

为了提升开发者阅读文档的体验,从9月份至今,我们花了整整三个月时间对组件的 demo / api 文档进行全面的优化。

开源不易,请给 TinyVue 点个 Star ⭐ 鼓励下,感谢你对我们 OpenTiny 的大力支持🌹

源码:https://github.com/opentiny/tiny-vue

我们来看下优化前后的对比效果吧。

以 DatePicker 组件为例。

1 组件 API 按照字典顺序排序

优化前组件的 props / events / methods / slots 排列比较乱,没有规律,不方便寻找。

image.png

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

image.png

2 更详细的组件 API 类型

优化前组件 props / events 等的类型不够细致,要了解组件的使用方式,还得跳转到 Demo 里面查看代码才知道怎么使用,不太方便,而且 Demo 里面可能没有覆盖到这个 API 的所有用法。

比如 picker-options 这个属性,API 表格里的类型是 Object,具体可以配置什么需要到 Demo 里才知道,而 Demo 里也只显示了 firstDayOfWeekshortcuts 两个配置项的用法,其中的 shortcuts 也只演示了 textonClick 两个配置项的用法。

优化后每个 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
  }[]
}

是不是非常清晰。

优化前:

image.png

优化后:

image.png

详细的类型定义:

image.png

3 更合理的 Demo 组织方式

组织良好的演示 Demo 可以方便开发者快速上手使用我们的组件,因此我们花了很多时间讨论和优化组件 Demo 的组织方式,主要包含:

  • 对 Demo 的标题进行简化和统一命名规则
  • 将相似的 Demo 进行合并和精简
  • 美化 Demo,增加必要的留白,避免太拥挤
  • 移除 Demo 代码中多余的内容,每个 Demo 专注于演示某个特性

我们还是以 DatePicker 组件为例。

优化前,相似特性的 Demo 较为分散,很难查找。

  • 日期单选、周单选、月份单选、年份单选分散在多个 Demo 中,并且年份单选的 Demo 重复
  • 日期范围选择、月份范围选择、年份范围选择分散在多个 Demo 中,年份范围选择的 Demo 重复
  • 日期多选和年份多选也分散在两个 Demo 中

image.png

优化后,将分散在多个 Demo 中的单选多选范围选择组织成三个 Demo,比之前更加清晰,更容易查找。

image.png

除了以上几个优化点之外,我们还对组件的文档做了大量的优化,欢迎朋友们到 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1290256.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

redis应用-分布式锁

目录 什么是分布式锁 分布式锁的基本实现 引入过期时间 引入校验id 引入lua 引入看门狗 引入redlock算法 什么是分布式锁 在一个分布式系统中,也会涉及到多个节点访问同一个公共资源的情况,此时就需要通过锁来做互斥控制,避免出现类似于"线程安全"的问题. 而…

Vis.js教程(三):设置关系图的节点关系指向

1、引言 在 Vis.js教程(一)基础关系图中,我们介绍了基础关系图的创建,以及关系图的简单样式修改。 这一节我们介绍如何给关系图添加节点之间的关系指向。 2、关系指向添加 // create an array with edgesconst edges new vis…

线上项目修改最后一招 修改jar中的文件并重新打包成jar

解压jar包 在要操作的jar文件上边cmd打开命令提示符窗口(windows系统), 在cmd命令下执行 jar -xvf xxx.jar 解压jar包(其中xxx.jar换成你的jar包名) jar -xvf admin-1.0.0.jar 替换或者更改操作 如果要替换jar压缩…

【Redis】Redis的内部设计与实现

Redis的设计、实现 数据结构和内部编码 type命令实际返回的就是当前键的数据结构类型,它们分别是:string(字符串)hash(哈希)、list(列表)、set(集合)、zset (有序集合),但这些只是Redis对外的数据结构。 实际上每种数据结构都有自己底层的内部编码实现,而且是多种实现,…

K-Radar:适用于各种天气条件的自动驾驶4D雷达物体检测

文章:K-Radar: 4D Radar Object Detection for Autonomous Driving in Various Weather Conditions 作者:Dong-Hee Paek, Seung-Hyun Kong,Kevin Tirta Wijaya 编辑:点云PCL 代码:https://github.com/ka…

【使用高德开放平台API和js的Ajax代码实现定位并获得城市的天气情况】

使用高德开放平台API和js的Ajax代码实现定位并获得城市的天气情况 1、注册高德开放平台账号,免费获得Web服务API应用key 高德开放平台Web服务API 按照API点击申请KEY 登录后进入应用管理 新建应用(随意起名) 然后添加key提交即可 然后就可…

开发步骤、Java开发工具

目录 一、开发步骤 二、Java开发工具 JDK安装完毕,我们就可以开始开发第一个Java程序了,习惯性的成为HelloWorld。 一、开发步骤 Java程序开发三步骤:编写、编译、运行 -将Java代码编写到扩展名为.java的源文件中 -通过javac.exe命令对…

【办公软件】Win10/Win11复制粘贴必须刷新才能显示

更换了新的一台电脑,但是发现新建文件夹或是复制粘贴文件时,不管是在桌面还是在其他磁盘中都需要右击刷新一下才显示。让人很郁闷,比如新建一个文件夹不显示以为没有新建成功,导致重复建了好几个。 如何解决? 使用Wi…

链路追踪详解(三):分布式链路追踪标准的演进

目录 Google Dapper Twitter Zipkin Uber Jaeger OpenTracing 和 OpenCensus OpenTelemetry 小结 分布式链路追踪是现代云计算和微服务架构中一个关键技术,可以让开发者和运维团队理解和监控服务请求在复杂系统中的完整流转路径。分布式链路追踪技术的发展经历…

岚图追光PHEV 25.28万元起售,开卷混动豪华轿车

作者|Amy 编辑|德新 12月5日晚,2023岚图科技日上,岚图汽车正式发布了其新一代SOA电子电气架构天元架构,并宣布了以“新行政电动旗舰”为定位的岚图追光PHEV正式上市。 岚图追光PHEV是岚图汽车旗下首款电混轿车&#x…

【LeetCode刷题】-- 79.单词搜索

79.单词搜索 方法:使用回溯 使用dfs函数表示判断以网格的(i.j)位置出发,能否搜索到word(k),其中word(k)表示字符串word从第k个字符开始的后缀子串,如果能搜索到,返回true,反之返回false 如果board[i][j]≠word[k]&am…

【S32K3环境搭建】-0.3-S32DS安装实时驱动RTD(Real-Time Driver)

目录 1 什么是“实时驱动RTD(Real-Time Driver)” 2 安装“实时驱动RTD(Real-Time Driver)” 2.1 方法一:通过S32DS Extensions and Updates安装“实时驱动RTD(Real-Time Driver)” 2.2 方法二:通过Install New Software…安装“实时驱动RTD(Real-Ti…

什么是LIMS实验室信息管理系统 LIMS系统功能介绍

实验室信息管理系统,也称为 LIMS系统,是一种软件解决方案,它通过自动化手动流程来支持现代实验室操作。因此,生命科学专业人员可以实时访问准确无误的信息。该软件使用户能够更有效地管理样本、分析相关数据并根据相关数据采取行动…

高端角雷达参考设计(TI文档)

说明 该参考设计使用了 AWR2944 评估模块 (EVM),为角雷达应用满足 NCAP R79 安全要求奠定了基础。该设计使用户能够估算和跟踪器件视场内最远 200m 的物体位置(在方位平面中)和速度。该应用主要面向提供多种功能(如盲点检测、前侧…

《Java 并发编程艺术》笔记(上)

如何减少上下文切换 减少上下文切换的方法有无锁并发编程、CAS算法、使用最少线程和使用协程。 无锁并发编程:多线程竞争锁时,会引起上下文切换,所以多线程处理数据时,可以用一些办法来避免使用锁。如将数据的 ID 按照 Hash 算法…

用modelbox server启动流程图,暴露Restful接口

背景 假设你已经搭建了modelbox开发容器,能够使用webUI构建流程图。如果没有请参考昇腾npu上构建modelbox webUI开发容器教程。 现在,本文会说明,如何在终端用命令的方式将流程图暴露为服务,并能够在本地用postman访问。 本文参…

「智慧城市」这一概念科学吗?还是炒作?

智慧城市是一个综合性的概念,它利用信息技术和创新概念,将城市的各个系统和服务集成起来,以提升城市运行效率、优化城市管理和服务,改善市民的生活质量。 具体来说,智慧城市涵盖了许多领域,包括城市规划、建…

Python中读写CSV文件的深入探讨

目录 一、引言 二、如何读取CSV文件 三、如何写入CSV文件 四、处理大型CSV文件 五、总结 一、引言 CSV(Comma-Separated Values)文件是一种常见的逗号分隔值格式的文件,常用于存储和传输数据。在Python中,我们可以使用内置的…

WindowsServer服务器系列:定时备份 MySQL

一、编写脚本 echo 取日期、时间变量值 set yy%date:~0,4% set mm%date:~5,2% set dd%date:~8,2% if /i %time:~0,2% lss 10 set hh0%time:~1,1% if /i %time:~0,2% geq 10 set hh%time:~0,2% set mn%time:~3,2% set ss%time:~6,2% set date%yy%%mm%%dd% set time%hh%%mn%%ss…

GIT GUI使用

文章目录 一、新建本地仓库二、推送(push) 一、新建本地仓库 在空白处右键,找到GIT GUI here, 如果没有仓库,出现的是这样的: 如果有仓库,在本地仓库里打开就是这样的: 新建本地…