大家好,今天来为大家分享夸克网盘链接网站源码分享的一些知识点,和夸克网盘吧的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
背景—
最近在接到一个开发React组件库的需求,组件库在开发过程中,刚写完一个组件打算给同事用,同事立马来了个灵魂拷问“啊?这个组件怎么用”。emmm,我寻思直接告诉它下一次又忘了,还是老老实实写个文档吧。
文档写到一半,@¥……39;react&39;prop-types&39;,&39;张三&39;睡觉&39;打王者&39;path&39;fs-extra&39;react-docgen&39;prettier&39;./Persion/index.jsx&39;utf-8&34;description&34;\n人物组件\n@description这是关于人物组件的描述内容\n@classPersion\n@extends{Component}&34;displayName&34;Persion&34;methods&34;name&34;handleSleep&34;docblock&34;\n处理睡觉的回调\n@paramname姓名\n&34;modifiers&34;params&34;name&34;name&34;description&34;姓名&34;type&34;name&34;string&34;optional&34;returns&34;description&34;处理睡觉的回调&34;props&34;name&34;type&34;name&34;string&34;required&34;description&34;姓名&34;defaultValue&34;value&34;&39;&34;computed&34;hobbies&34;type&34;name&34;array&34;required&34;description&34;爱好&34;defaultValue&34;value&34;[&39;,&39;]&34;computed&34;onSleep&34;type&34;name&34;func&34;required&34;description&34;睡觉的事件回调&39;./Persion/index.md&39;markdown&39;&39;/g,&39;)).join(&39;),\nunion:(type)=>type.value.map((item)=>item.name).join(&39;)\n}\nif(typeofhandler[type.name]===&39;){\nreturnhandler[type.name](type&34;).replace(/\\|/g,&39;)\n}else{\nreturntype.name.replace(/\\|/g,&39;)\n}\n}\n\n//渲染1行属性\nfunctionrenderProp(name,\n{type={name:&39;},defaultValue={value:&39;},required,description}){\nreturn`|${name}|${getType(type)}|${defaultValue.value.replace(\n/\\|/g,\n&39;\n)}|${required?&39;:&39;}|${description||&39;}|\n`\n}\n\n
上面的转换markdown的代码其实做的事情比较少,主要是以下几个步骤
遍历props对象中的每个属性,解析属性prop,提取属性名、类型、默认值、必填、描述、生成对应的markdown表格行。生成markdown内容,通过prettier美化markdown代码。
经过转换后最终生成我们这个markdown的文件
参数Props\n\n|属性|类型|默认值|必填|描述|\n|——-|——|——————|—-|————–|\n|name|string|&39;|?|姓名|\n|hobbies|array|[&39;,&39;]|?|爱好|\n|onSleep|func|-|?|睡觉的事件回调|\n
拓展优化
这个案例只简单讲述了如何解析props并生成markdown的参数Props模块的流程,在现实项目中,以上流程还有很多可以优化的空间,我们还可以通过很多自定义规则进行各种骚操作。
比如我们不希望把参数的数据属性(name、hobbies)和回调属性(onSleep)都放到同一个Props表格中,我们希望可以进行属性上的分类。
在属性描述的注释中,我们可以通过@xx(或者¥%39;张三&39;睡觉&39;打王者&#事件Event\n\n|属性|类型|默认值|必填|描述|\n|——-|—-|——|—-|————–|\n|onSleep|func|-|?|睡觉的事件回调|
当然还有很多比如description或者methods等都可以进行不同的解析并生成对应的markdown模块,数据信息提取出来了,其实最终怎么进行ast解析取决自身的具体业务要求。
小结—
在日常开发的过程中,我们除了组件的代码编写外,还有很多流程上、边角上的工作需要做,这些事情往往都比较琐碎又必须要做。我们多借助工具去解决我们的工作中那些零星简单的任务,从而达到高(jiu)效(xiang)完(kuai)成(dian)工(xia)作(ban)的目标。开发者都是懒惰的(可能只有我??),不然怎么会有这么多自动化的产物呢~
作者:凹凸-朱飞飞
转发链接:https://mp.weixin.qq.com/s/6eH9Zqn-6Y3c8TlDBfacPg
夸克网盘链接网站源码分享的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于夸克网盘吧、夸克网盘链接网站源码分享的信息别忘了在本站进行查找哦。