快速优雅的为React组件生成文档

在开发React组件时我们通常需要处理2个问题:

  1. 实例化这个组件以便调试
  2. 为这个组件编写使用文档以便更好的让别人知道怎么使用这个组件

最原始的方法莫过于开发时建一个页面用于调试,开发完后再为其手写文档。然而一个详细的React组件文档应该包括:

  1. 为各种使用场景编写demo以及对应的说明,同时附上demo的源码
  2. 有demo可以当场体验而不是使用者要自己写代码后才能体验这个组件
  3. 它的属性列表(propTypes)
  4. 它的实例方法列表

如果你想做到以上估计得花上你一天的功夫,我希望能把精力放在开发更好的组件上剩下的能毫不费劲的优雅完成,于是我做了本文的主角Redemo。 Redemo是用来简单优雅的完成以上问题让你专注于开发自己的组件,剩下的一切它都为你做好了。先看下Redemo为组件生成文档的效果图或直接体验部分实践中的项目redemo文档imuix

结构如下:

  • 最上面是可立即体验的组件demo,同时可以用在开发过程中调试组件
  • 组件实例下是这个demo的说明,支持markdown
  • 接下来是组件的属性列表(propTypes),支持markdown
  • 最后是这个demo的源码

为你的组件生成这个你几乎不用写超过10行简单的代码更不用单独为组件写文档。假设你编写了一个Button组件,让我们来为Button组件编写一个demo:

  1. 通过npm i redemo 安装 redemo
  2. 写下这些简单的代码import Redemo from 'redemo'; import Demo from './demo';//为一个使用场景实例化Button组件的demo源码 // 使用docgen 从 Button 组件源码里分析出 propTypes const docgen = require('!!docgen-loader!../button'); // 读取为Button组件编写的demo的源码 const code = require('!!raw-loader!../demo'); const doc = `为这个demo做一些说明,支持*markdown*` render( <Redemo docgen={docgen} doc={doc} code={code} > <Demo/> </Redemo> )

聪明的你大概会问以上代码并没有为Button属性编写文档,属性列表里的说明是哪来的?其实是通过react-docgen从Button组件源码里提取出来的。大家都知道为代码写注释是个好习惯方便维护和理解,而这些注释正好也可以放在文档里一举两得。所以你在编写Button组件时需要为propTypes写注释,就像这样:

class Button extends Component {
  static propTypes = {
    /**
     * call after button is clicked,支持*markdown*
     */
    onClick: PropTypes.func,
  }
  ...
}

想更深的了解redemo请看这里 希望redemo可以提升你的效率,觉得有用可告诉你的朋友。

阅读原文

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏weixuqin 的专栏

sublime下让代码居中

36113
来自专栏狮乐园

高级 Angular 组件模式 (2)

我们需要实现的需求是能够使使用者通过<toggle>组件动态的改变包含在它内部的内容。

1183
来自专栏Bug生活2048

微信小程序版博客——图片相关处理

前面提到,小程序服务端的数据是基于Ghost的公共API的,在设计首页文章列表时,为了美观加上了头图,但是服务端没有提供对应的字段(头图url)。

1742
来自专栏IMWeb前端团队

如何在前端编码时实现人肉双向编译

本文作者:IMWeb yisbug 原文出处:IMWeb社区 未经同意,禁止转载 如何在前端编码时实现人肉双向编译 React+flux是目前最火的前...

1845
来自专栏较真的前端

使用神器eruda 进行移动端调试

2453
来自专栏mwangblog

git标签

1323
来自专栏Android机动车

使用Fiddler抓取bilibili安卓客户端口数据并分析http、https

经过了一个多星期的时间(自2017/10/16开始),到目前(2017/10/24)为止,项目框架的搭建已基本完成、还完成了首页中「直播」与「推荐」Fragme...

1621
来自专栏菩提树下的杨过

asp.net webform中submit按钮使用不当很容易犯的一个错误

webform中默认一个页面只能有一个form,有时submit按钮使用不当会产生一些奇怪的问题。 ? 比如这是一个网站的头部搜索部分,前端人员把“搜索”按钮用...

1965
来自专栏WindCoder

Ubuntu14.04下使用fcitx安装搜狗及双拼输入法

之前Ubuntu打不开了,重新装了一遍,顺便把一些东西直接记录下来,省得日后再四处爪哇。。。

2703
来自专栏林德熙的博客

win10 uwp 读写csv 使用库 Chilkat

CSV是一种通用的、相对简单的文件格式,被用户、商业和科学广泛应用。最广泛的应用是在程序之间转移表格数据,而这些程序本身是在不兼容的格式上进行操作的(往往是私有...

1021

扫码关注云+社区