精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

對比三個強大的組件文檔展示工具

開發 開發工具
經多對比之后, 我們把一個 React 組件庫 遷移到了 dumi, 并取得了不錯的效果。有需要做 React 組件庫的小伙伴可以留意下dumi.至于 Vue 組件文檔庫, 大家就根據自己的情況靈活選擇吧。

背景

前段時間, 部門在熱火朝天的搞各類組件庫。

做組件庫,不可避免的就需要做組件的展示和說明, 要用到一些文檔工具。

我們項目里面也嘗試了幾種不同的文檔工具,今天和大家分享一些經驗, 希望對大家有所幫助。

正文

目前, 我們的組件庫 一共使用了三種文檔工具, 分別是:

  1. Story Book
  2. Docz
  3. Dumi

下面我會根據實際的使用情況,對這三種工具做一些對比 并給出一些結論。

1. Story Book

StoryBook 提供了一套UI組件的開發環境。

它允許你瀏覽組件庫,查看每個組件的不同狀態,以及交互式開發和測試組件, 目前支持 react、vue、angular 等前端類庫和框架。

代碼示例

  1. // Button.stories.tsx 
  2. import React from 'react'
  3. import { Story } from '@storybook/react'
  4.  
  5. // We create a “template” of how args map to rendering 
  6. const Template: Story<ButtonProps> = (args) => <Button {...args} />; 
  7.  
  8. export const Primary = Template.bind({}); 
  9.  
  10. Primary.args = { 
  11.   primarytrue
  12.   label: 'Primary'
  13. }; 

 storybook 提供可以交互的組件編寫,通過 Template.bind({}) 進行組件的綁定,通過 args暴露可交互的屬性。

且支持的組件庫豐富,但是文檔的編寫除了需要提供示例外,還需要兼容可交互的模式。

渲染示例

比如我們的 SSC-UI-Vue-Pro 組件庫:

  1. import STrackingHistory from './tracking-history.vue'
  2. import './style/index.less'
  3.  
  4. export default { 
  5.   title: 'Design System/展示/TrackingHistory'
  6.   component: STrackingHistory, 
  7.   parameters: { 
  8.     docs: { 
  9.       description: { 
  10.         component: '訂單歷史追蹤,主要按時間和狀態維度跟進'
  11.       }, 
  12.     }, 
  13.     design: { 
  14.       type: 'figma'
  15.       url: 
  16.         'https://www.figma.com/file/zi4Lcb2H2K5JikFKeEvPD7/WMS%E5%85%B8%E5%9E%8B%E6%A8%A1%E6%9D%BFV1.1?node-id=2974%3A595'
  17.     }, 
  18.   }, 
  19.   argTypes: { 
  20.     title: { 
  21.       control: 'text'
  22.       description: '標題內容,必填'
  23.       type: { required: true }, 
  24.     }, 
  25.     list: { 
  26.       control: 'object'
  27.       description: '歷史記錄列表'
  28.       type: { required: true, summary: 'array' }, 
  29.     }, 
  30.   }, 
  31. }; 
  32.  
  33. const Template = (args, { argTypes }) => ({ 
  34.   components: { STrackingHistory }, 
  35.   props: Object.keys(argTypes), 
  36.   template: '<STrackingHistory v-bind="$props" />'
  37. }); 
  38.  
  39. export const Default = Template.bind({}); 
  40. (Default as any).args = { 
  41.   title: 'Order Tracking History'
  42.   list: [ 
  43.     { 
  44.       time'18:00:22'
  45.       date'2021-11-23'
  46.       status: 'string; // 選填,缺省時不顯示'
  47.       statusType: 'default'
  48.       contents: [ 
  49.         { 
  50.           label: 'Message'
  51.           value: 'LineContent[]; // 選填,按順序展示每一行內容'
  52.         }, 
  53.         { 
  54.           label: 'Oprater'
  55.           value: 'LineContent[]; // 選填,按順序展示每一行內容'
  56.         }, 
  57.       ], 
  58.       splitLineText: 'New Order'
  59.     }, 
  60.     { 
  61.       date'2021-1-2'
  62.       status: 'string; // 選填,缺省時不顯示'
  63.       statusType: 'default'
  64.       contents: [ 
  65.         { 
  66.           label: 'Operator'
  67.           value: 'LineContent[]; // 選填,按順序展示每一行內容'
  68.         }, 
  69.       ], 
  70.     }, 
  71.     { 
  72.       date'2021-11-23'
  73.       status: 'string; // 選填,缺省時不顯示'
  74.       contents: [ 
  75.         { 
  76.           value: 'LineContent[]; // 選填,按順序展示每一行內容'
  77.         }, 
  78.       ], 
  79.     }, 
  80.     { 
  81.       date'2021-11-23'
  82.       status: 'string; // 選填,缺省時不顯示'
  83.       statusType: 'success'
  84.       contents: [], 
  85.     }, 
  86.     { 
  87.       date'2021-1-23'
  88.       contents: [{}], 
  89.     }, 
  90.     { 
  91.       date'2021-1-3'
  92.     }, 
  93.     { 
  94.       date'2021-11-23'
  95.       contents: [ 
  96.         { 
  97.           label: 'Message'
  98.         }, 
  99.       ], 
  100.     }, 
  101.   ], 
  102. }; 

2. docz

Docz 是一個高效、零配置的事件記錄工具。

Docz 基于 MDX ,有許多內置的組件可以幫助你記錄你的事情。

它同時支持添加插件,以便于通過 Docz 流程和數據管控很多事情。

代碼示例

  1. // Button.mdx 
  2. import { Playground } from 'docz' 
  3. import { Button } from './Button' 
  4.  
  5. # Button 
  6.  
  7. ## Basic usage 
  8.  
  9. <Playground> 
  10.   <Button>Click me</Button> 
  11.   <Button kind="secondary">Click me</Button> 
  12. </Playground> 

渲染示例

這是官網的一個示例,可以看出代碼的示例需要寫在 Playground 標簽里面,由此帶來一個問題,無法在代碼示例中寫引入模塊,這其實對開發者不太友好。

我們的 SSC-UI-React 組件庫使用了docz, 實際效果:

圖片

3. dumi

dumi 是一款為組件開發場景而生的文檔工具。

其具有開箱即用,將注意力集中在組件開發和文檔編寫上。

基于 TypeScript 類型定義,自動生成組件 API、移動端組件庫編寫及多語言支持。

代碼示例

在類型定義中:

圖片

渲染示例

圖片
圖片

總體對比

以下為三個庫的特性對比:

綜上所述,愉快地決定將 React Pro Components 組件庫文檔遷移到 dumi 中。

踩坑總結

1. React 版本不兼容問題

一通遷移操作后,我們 yarn 了一下,發現報錯了:

圖片

這是 ts 報出的關于 react 類型檢查的錯誤,一開始認為是 ts 檢查多了,那么在tsconfig.json 配置 excluded:['node-modules'],將這個檢查去掉,但是配完了仍然不好使。

經過一通細致的檢查,在 yarn.lock 中發現組件庫依賴的 react 版本是 16,而 dumi 依賴的 react 版本是*,*的版本下載了 17 版本的 react,由于兩個版本的 react 的 ts 類型不同,導致了類型檢查不通過。

圖片
圖片
圖片

既然如此,我們只要顯示指定 react 的版本為 16 就行了,16 在 * 的范圍,也不會導致 dumi 有錯誤。

在 package.json 中加入:

  1. "resolutions": { 
  2.   "@types/react""^16.9.23" 

即可。

2.文檔引用問題

由于 dumi 的文檔是面向用戶的,因此寫文檔時引入組件的方法,舉例:

如 Button 組件為:

  1. import { EditArea } from 'react-pro-components' 

由于這里引入的是 node_module 的包,這使得組件庫的更改無法映射到文檔中,需要添加別名映射。

在 .umirc.ts 中添加:

  1. const path = require('path'); 
  2. const chainWebpack = require('webpack-chain'); 
  3. export default { 
  4.  // 其他配置 
  5.   chainWebpack(memo) { 
  6.     // 設置 alias 
  7.     memo.resolve 
  8.       .alias 
  9.       .set('react-pro-components', path.resolve(__dirname, 'src''components')) 
  10.   }, 
  11. }; 

3. 其他問題

1.dumi 是否支持 api 文檔的部分屬性隱藏呢?

暫不支持

2.dumi 是否支持搜索呢?

site 模式支持,doc 模式暫不支持。

3.dumi 是否 md 文檔單獨放在組件目錄下的一個文件夾下呢?

暫不支持,需要直接放在組件目錄下,如 Button 組件:

  1. ├── Button 
  2. │   └── index.md 

結論

經多對比之后, 我們把一個 React 組件庫 遷移到了 dumi, 并取得了不錯的效果。

有需要做 React 組件庫的小伙伴可以留意下dumi.

至于 Vue 組件文檔庫, 大家就根據自己的情況靈活選擇吧。

希望這篇文章能對大家有所幫助, 謝謝。

 

責任編輯:姜華 來源: 前端皮小蛋
相關推薦

2024-11-22 15:23:51

Python虛擬環境

2017-08-01 08:41:29

Oracle開源容器

2018-08-29 05:33:52

2024-07-02 11:06:37

SpringBoot項目

2023-12-28 07:39:58

C#項目框架

2011-09-13 15:05:57

2010-05-24 14:43:39

Linux性能監測工具

2015-03-30 12:20:07

DemoStoryboard

2010-03-24 10:32:05

Python多線程

2023-04-26 11:14:11

IT領導者遠程工作

2018-10-18 08:15:27

開源分布式追蹤工具

2023-07-28 09:00:00

NLP開源工具

2018-05-02 08:06:12

2010-08-24 09:10:14

Linux命令行工具

2023-10-17 07:23:00

Vue組件代碼

2020-06-11 09:00:27

SDN網絡架構網絡

2020-02-02 14:45:55

聯系人開源工具

2021-04-28 15:07:06

鴻蒙HarmonyOS應用

2023-10-10 15:17:54

數據集降維技術

2022-04-28 16:54:13

事件響應網絡安全安全工具
點贊
收藏

51CTO技術棧公眾號

国产欧美日韩精品专区| 亚洲国产精品va在看黑人| 国产树林野战在线播放| 手机av在线网站| 2021中文字幕在线| 国产日产精品1区| 亚洲影视中文字幕| 国产日产精品一区二区三区| 国产在线日韩精品| 精品国产免费人成在线观看| 欧美三级理论片| 91资源在线观看| 1024国产精品| 日本午夜精品电影| 亚洲毛片欧洲毛片国产一品色| 日本三级亚洲精品| 精品一区二区三区四区| 亚洲美女性囗交| 日本欧美在线视频免费观看| 成人免费视频播放| 亚洲va欧美va国产综合剧情| 亚洲中文一区二区| 99re国产精品| 欧美日韩成人在线视频| 999福利视频| 蜜臀av免费一区二区三区| 日韩欧美在线观看一区二区三区| 成年网站在线播放| 国产高清不卡| 天天色综合天天| 国产精品69久久久| 国产原厂视频在线观看| 中文字幕欧美一| 日韩av电影免费播放| 三级视频在线播放| 99久久精品免费看国产免费软件| 91精品国产综合久久久久久丝袜 | 91手机视频在线观看| 国产一级淫片a视频免费观看| 国产精品男女| 精品人在线二区三区| 亚洲图片 自拍偷拍| 国产黄色精品| 欧美日韩精品一区二区| 永久免费看av| 成人区精品一区二区不卡| 国产二区国产一区在线观看| 亚洲18私人小影院| 久久一二三四区| 国产一区亚洲| 91精品国产91久久久久久| 日韩精品乱码久久久久久| 伊人久久久大香线蕉综合直播| 欧美日韩电影在线观看| 国产精品1000| 99精品久久| 国产999精品久久久影片官网| 日本猛少妇色xxxxx免费网站| 精品在线观看入口| 亚洲色图35p| 欧美自拍偷拍网| 欧美黄色大片在线观看| 亚洲激情在线视频| 三级电影在线看| 国产欧美日韩精品一区二区三区| 国产一区二区黑人欧美xxxx| 99在线视频免费| 91九色精品| 欧美国产在线视频| 久久国产视频播放| 日本强好片久久久久久aaa| 国产日韩在线视频| 亚洲精品视频网| 91麻豆精品秘密| 亚洲欧美久久久久一区二区三区| 成人av黄色| 婷婷六月综合亚洲| 亚洲欧美日韩综合网| 国产精品久久久久久久久久辛辛| 日韩丝袜情趣美女图片| 中文文字幕文字幕高清| 欧美亚洲国产激情| 欧美高清videos高潮hd| 国产一区二区视频网站| 国产真实精品久久二三区| 国产精品乱子乱xxxx| 福利片在线观看| 亚洲一区二区三区中文字幕| 一区二区三区四区欧美日韩| 在线电影福利片| 色综合一个色综合| 91香蕉视频在线观看视频| av有声小说一区二区三区| 8x8x8国产精品| 日本xxxx黄色| 超碰成人在线观看| 亚洲最新视频在线| 久久高清免费视频| 久久99久久99| 久久亚洲午夜电影| h片在线观看网站| 色婷婷久久久综合中文字幕| 日本xxxx免费| 99久久99久久精品国产片果冰| 性欧美xxxx| 99久久精品国产一区色| 国产拍揄自揄精品视频麻豆| 五月丁香综合缴情六月小说| 国产精品久久久久久久久久久久久久久| 日韩电影在线观看中文字幕| 免费在线观看av网址| 麻豆精品精品国产自在97香蕉| 国产伦精品一区二区三区视频黑人| 日本高清中文字幕在线| 欧美午夜精品在线| 黄色在线免费播放| 欧美 日韩 国产精品免费观看| 国产精品视频久久久久| 你懂的免费在线观看| 亚洲成人av一区二区| 亚洲一区二区三区四区精品 | 在线免费一区| 日韩高清成人| 亚洲午夜久久久影院| 日韩成年人视频| 国产大陆a不卡| 在线一区日本视频| 欧美国产视频| 在线亚洲国产精品网| 日韩一区二区a片免费观看| 欧美日本三区| 亚洲综合中文字幕68页| 毛片在线看片| 一区二区免费在线| 青青草视频在线免费播放| 玖玖精品一区| 亚洲精品国精品久久99热| 国产探花在线免费观看| 激情图区综合网| 欧美性视频在线播放| 日韩福利在线观看| www亚洲精品| 91在线观看喷潮| 日韩理论在线观看| 色婷婷综合在线观看| 欧美777四色影| 成人在线免费观看一区| 黄网站在线观| 亚洲黄色www网站| 日韩欧美成人一区二区三区| 久久久国产综合精品女国产盗摄| 日本熟妇人妻xxxxx| 精品国产精品国产偷麻豆| 国产成人精品视频| av二区在线| 欧美一区二区日韩一区二区| 国内偷拍精品视频| 成人精品视频网站| 国产h视频在线播放| 蜜桃国内精品久久久久软件9| 国产福利精品视频| 瑟瑟视频在线| 日韩久久久久久| 日韩av电影网址| 久久精品免视看| 日韩av片专区| 一区在线免费| 日韩激情视频| 国产aⅴ精品一区二区四区| 久久999免费视频| 视频国产在线观看| 欧美日韩高清影院| 九九热国产在线| 91女神在线视频| 天堂在线资源视频| 欧美在线网站| 蜜桃精品久久久久久久免费影院| 99久久精品一区二区成人| 久久天堂av综合合色| 人妻一区二区三区免费| 色婷婷久久综合| 青娱乐国产在线| 久久免费美女视频| 韩国一区二区在线播放| 亚洲伦伦在线| 中文字幕黄色大片| 女同一区二区三区| 91免费电影网站| 九色porny视频在线观看| 中文字幕亚洲激情| 日本精品久久久久久| 欧美日韩午夜在线| 中文字幕在线字幕中文| 韩日欧美一区二区三区| 国产中文字幕乱人伦在线观看| 国产亚洲欧美日韩在线观看一区二区 | 高清在线一区| 91高潮在线观看| 一级二级黄色片| 成人av动漫在线| 黄色手机在线视频| 亚洲激情国产| 致1999电视剧免费观看策驰影院| 欧美亚洲色图校园春色| 亚洲tv在线观看| 国精产品一区一区三区四川| 97国产精品免费视频| 国产黄a三级三级三级av在线看| 亚洲美女中文字幕| 亚洲av无码乱码在线观看性色| 欧美色综合影院| 999这里只有精品| 夜夜嗨av一区二区三区网页| 天海翼在线视频| 久久久久国产免费免费| 99精品视频免费版的特色功能| 一区二区三区午夜探花| 精品国产乱码久久| www.久久网| 国产午夜亚洲精品理论片色戒| 四虎成人在线播放| 免费观看久久久4p| 男人亚洲天堂网| 亚洲午夜激情在线| 妞干网这里只有精品| 91日韩免费| 亚洲欧洲另类精品久久综合| 国产传媒欧美日韩成人精品大片| 久久久精彩视频| 黄色成人美女网站| 国产一区二区自拍| 国产精品香蕉| 国产精品日韩欧美一区二区| 午夜日韩影院| 99re在线观看| 亚洲综合色婷婷在线观看| 91九色对白| 试看120秒一区二区三区| 91亚洲午夜在线| 一区二区三区欧洲区| 91九色露脸| 91在线一区| 国严精品久久久久久亚洲影视| av不卡一区| 久久精品第九区免费观看| 日韩美女毛片| 国产日韩专区在线| 少妇精品视频在线观看| 成人激情视频在线播放| 国产中文在线播放| 中文字幕日韩免费视频| av午夜在线| 久久av.com| 成人影院在线播放| 91大神在线播放精品| 国产精品av一区二区三区| 国产精品极品美女在线观看免费| 亚洲成人一区在线观看| 欧美激情一区二区三区久久久 | 麻豆精品精品国产自在97香蕉| 在线看的黄色网址| 国产一区二区三区蝌蚪| 久久久久无码精品| 成人黄色av网站在线| 国产精品jizz| 国产精品久久777777| 一级黄色录像视频| 婷婷综合五月天| 中文字幕av影视| 日韩一区国产二区欧美三区| 天堂在线视频免费| 国产一区二区三区在线观看视频| 思思99re6国产在线播放| 欧美激情乱人伦| 日日夜夜天天综合| 亚洲一区二区三区777| 免费成人蒂法| 亚洲一区二区在线免费观看| 亚洲视频一区| 亚洲一区二区三区四区五区xx| 国产精品系列在线观看| 亚洲第一页av| 亚洲免费在线观看| 欧美videossex极品| 欧美精品自拍偷拍| 亚洲aⅴ乱码精品成人区| 久久精品精品电影网| 亚洲妇女成熟| 97伦理在线四区| 欧美军人男男激情gay| 男的插女的下面视频| 久久精品国内一区二区三区| 久久久久久久无码| 成人欧美一区二区三区黑人麻豆| 自拍偷拍欧美亚洲| 91精品国产综合久久久久久久久久| 天堂网av2014| 欧美成人黄色小视频| 国产极品久久久久久久久波多结野| 99久久自偷自偷国产精品不卡| 日韩在线观看| 国产一区亚洲二区三区| 成人午夜电影久久影院| 艳妇荡乳欲伦69影片| 在线观看视频一区二区| 欧美 日韩 综合| 精品国偷自产在线| 日韩在线免费| 蜜桃网站成人| 亚洲大片在线| 国产精品91av| 亚洲视频资源在线| 337p粉嫩色噜噜噜大肥臀| 亚洲激情在线观看| 91桃色在线观看| 99久久精品免费看国产四区 | 网友自拍一区| 精品成在人线av无码免费看| 黄色资源网久久资源365| 在线小视频你懂的| 色综合久久中文字幕综合网| 开心激情综合网| 久久91精品国产91久久久| 国产一区二区三区视频在线| 永久域名在线精品| 久久精品国产精品亚洲红杏 | 亚洲综合一区二区| 国产三级按摩推拿按摩| 自拍亚洲一区欧美另类| 澳门av一区二区三区| 欧美在线一二三区| 日韩精品一级二级| 你懂得视频在线观看| 欧美在线短视频| av女优在线| 国产欧美欧洲在线观看| 国产精品成人一区二区不卡| 国产精品v日韩精品v在线观看| 日本一区二区三区四区| 在线观看日批视频| 最近2019中文字幕mv免费看 | 国产99精品视频| 久操免费在线视频| 精品裸体舞一区二区三区| caoprom在线| 久久久久成人精品免费播放动漫| 亚洲一区日韩| 亚洲理论片在线观看| 欧美日韩的一区二区| 黄色av电影在线观看| 99热99热| 亚洲一区激情| 91小视频网站| 国产精品二三区| av手机免费看| 97视频免费看| 国内黄色精品| 国产亚洲色婷婷久久| 免费在线看黄色| 亚洲一区二区久久久久久久| 你懂的国产精品永久在线| 精品久久久久久无码人妻| 五月激情六月综合| 国产1区2区3区在线| 国产自摸综合网| 最新成人av网站| 无码一区二区三区在线| 欧美日本一区二区三区四区| 女囚岛在线观看| 日韩久久不卡| 国产精品一区免费在线观看| 欧美另类一区二区| 在线看日韩av| 6080成人| 亚洲这里只有精品| 夜夜嗨av一区二区三区| 国产亚洲依依| 久久久在线免费观看| 北条麻妃在线一区二区免费播放| 国产精品欧美激情在线观看 | 免费又黄又爽又色的视频| 亚洲欧美999| 国产精品成人3p一区二区三区| 中国丰满人妻videoshd| 成人免费在线播放视频| 天堂中文网在线| 国产日韩欧美91| 性色一区二区三区| 久久机热这里只有精品| 夜夜躁日日躁狠狠久久88av| 国产精品黄网站| 中文字幕在线综合| 精品久久久中文| 免费的黄网站在线观看| 欧美18视频| 成人免费视频视频| 国产精品综合在线| 国产精品成人久久久久| 亚洲精品字幕| 妺妺窝人体色www聚色窝仙踪|