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

基于 Vite 的組件文檔編寫神器,又快又省心

開發 前端
現在 Vite 的生態逐漸完善,今天給大家介紹一款 React 的組件/應用文檔編寫神器:vite-plugin-react-pages.

現在 Vite 的生態逐漸完善,今天給大家介紹一款 React 的組件/應用文檔編寫神器:vite-plugin-react-pages

目前主流搭建文檔站點的方式:

  1. Gatsby - 以 GraphQL 為核心,功能相當完善,插件生態豐富。但學習曲線高(React)
  2. Docusaurus - Meta 公司出品。功能強大,與 Gatsby 相似(React)
  3. dumi - 一款 UmiJS 生態中的組件開發文檔工具(React)
  4. Nextra - 一個基于 Next.js 的靜態站點生成器。(React)
  5. VuePress - 包含由 Vue 驅動的主題系統和插件 API,另一個部分是為書寫技術文檔而優化的默認主題(Vue)
  6. VitePress - 對 VuePress 進行了不少的改進。VitePress 旨在降低當前 VuePress 的復雜性,并從其極簡主義的根源重新開始。(Vue)

除了 VitePress 之外,其他都是用 Webpack 作為開發服務器。一個只有幾頁的簡單文檔站點啟動開發服務器所花費的時間變得難以忍受。即使是 HMR 更新也可能需要幾秒鐘才能反映在瀏覽器中。Vite 的出現很好地解決了這些問題:近乎即時的服務器啟動、僅編譯所服務頁面的按需編譯以及閃電般快速的 HMR。

作為 Vite 的基礎上的文檔方案, VitePress 只支持 Vue。

翻閱 Vite 的官方庫列表,偶然發現了一款 star 數量僅 100 多的文檔解決方案 vite-plugin-react-pages。開始用試試水的心態去去體驗一把,結果發現相當好用。就是知道的人太少了。現在,我們從使用者的角度去解析它好用的功能。

特性

vite-plugin-react-pages(vite-pages) 是一個由 vite 提供支持的 React 應用程序框架。它非常適合:

  • 博客網站
  • 組件庫或產品的文檔站點
  • React 組件的 Demo 演示

它提供了許多幫助開發人員快速構建 React App 的功能:

  • 很棒的開發體驗。即使有很多頁面,也可以極速啟動本地開發服務器。HMR 適用于 React 和 MDX,因此可以在編輯代碼時獲得即時的更新反饋。
  • 基于文件系統的路由。通過遵循簡單的文件系統路由約定,可以輕松創建、定位和開發頁面。也可以配置 vite-pages 如何查找頁面文件,以便支持任何文件結構的項目。
  • 支持 MDX。可以使用 “普通 React” 或 MDX 編寫內容。“普通 React” 與 Markdown 靈活組合,更具可讀性和易于編輯。
  • 強大的主題定制。vite-pages 本身不渲染任何具體的 DOM 節點。使用默認的官方主題庫,也可以很容易自己創建一個主題,可以自定義頁面上的任何內容。
  • 基于頁面的自動代碼拆分。只根據訪問需要加載當前的頁面數據。
  • 支持組件與代碼預覽。在看到組件功能之后,可以通過代碼查看組件使用方式。
  • 支持 typescript 類型提取。將 typescript 的類型定義和注釋生成為組件 API 文檔表格。
  • 支持 SSR 開箱即用。通過在構建時將應用預渲染為 HTML,用戶可以在加載任何 JS 之前看到內容。

使用

vite-pages 默認提供了三種模板,可以選擇初始化app(應用)、lib(組件庫)、lib-monorepo

可以通過命令創建一個自己的初始倉庫

  1. npm init vite-pages [倉庫名] --template [模板名] 

我們執行 npm init vite-pages library-demo --template lib 生成了一個典型的 Vite 結構的項目,有熟悉的 vite.config.ts、pages 文件夾等

該插件所有明確的依賴包作用:

  • @mdx-js/mdx MDX的實現
  • @mdx-js/react 作為 MDX 的 React 實現。
  • vite-plugin-mdx Vite 支持 MDX 的插件
  • vite-plugin-react-pages 文檔插件核心實現
  • vite-pages-theme-doc 官方的文檔主題。依賴 react-router-dom ^5.0.0 版本

pages 目錄為文檔入口。文件式路由約定用 $ 符號的文件名結尾來識別為一個文檔頁面。

.ts|.tsx|.js|.jsx|.md|.mdx 只要 $ 是擴展名前的最后一個字符,所有文件擴展名都有效。

pages 目錄中還存在一個特殊的入口 _theme.tsx 用來配置當前文檔的主題,vite-pages 默認使用了 vite-pages-theme-doc 官方主題。如果自定義需求不大,可以通過配置官方主題的參數來實現常規的功能。比如配置 logo、頂部鏈接、左側菜單等。

我們來看看首頁文檔代碼

  1. --- 
  2. title: 首頁 
  3. --- 
  4.  
  5. import README from '../README.md' 
  6.  
  7. <README /> 

引入了 README.md 文檔作為首頁內容,在 MDX 里,文檔和組件契合得相當完美。

接下來新建一個文檔,粘貼一篇之前寫過的主題

菜單名稱會優先使用 md 文件中的一級標題,否則使用文件名。也可以在 md 文件的首行加入以下代碼設置:

  1. --- 
  2. title: mac-scrollbar 
  3. group: components 
  4. subGroup: general 
  5. --- 

group 一級分組,會顯示在頭部列表區域;subGroup 二級分組,會將左側菜單分組顯示。

可以通過 _theme.tsx 更改分組名和分組順序

  1. sideNavs: (ctx) => { 
  2.   return defaultSideNavs(ctx, { 
  3.     groupConfig: { 
  4.       components: { 
  5.         general: { 
  6.           label: '通用'
  7.           order: 1, 
  8.         }, 
  9.         dataRecord: { 
  10.           label: '數據錄入'
  11.           order: 2, 
  12.         }, 
  13.       }, 
  14.     }, 
  15.   }); 
  16. }; 

用它寫文檔體驗相當不錯,markdown 主題默認自帶 github 樣式,排版清晰。熱更新做得非常棒,更改后即時就能看到效果。

接下來我們用它來做一個組件看看效果如何,做一個最基礎的按鈕組件

首先定義組件類型:

  1. interface ButtonProps extends React.HTMLAttributes<HTMLButtonElement> { 
  2.   /** 
  3.    * 類型 
  4.    * @defaultValue 'default' 
  5.    */ 
  6.   type?: 'primary' | 'default' | 'text'
  7.   /** 
  8.    * 尺寸 
  9.    * @defaultValue 'middle' 
  10.    */ 
  11.   size?: 'large' | 'middle' | 'small'
  12.   /** 
  13.    * 加載狀態 
  14.    * @defaultValue false 
  15.    */ 
  16.   loading?: boolean; 

簡單實現:

  1. import React from'react'
  2. import { ButtonProps } from'./types'
  3. import styles from'./style.module.css'
  4.  
  5. const Button = ({ className, type, ...props }: ButtonProps) => { 
  6.   return ( 
  7.     <button 
  8.       {...props} 
  9.       className={[styles.button, type === 'primary' && styles.primary, className].filter(Boolean).join(' ')} 
  10.     /> 
  11.   ); 
  12. }; 
  13.  
  14. exportdefault Button; 

 接著寫一些 Demo

  1. /** 
  2.  * @title 基本按鈕 
  3.  * @description 一個很普通的按鈕 
  4.  */ 
  5.  
  6. import React from'react'
  7. import { Button } from'my-lib'
  8.  
  9. const Demo1 = () => { 
  10.   return<Button>按鈕</Button>; 
  11. }; 
  12.  
  13. exportdefault Demo1; 

最后,在文檔中引入這些 Demo

  1. --- 
  2. title: Button 
  3. subGroup: general 
  4. --- 
  5.  
  6. # Button 
  7.  
  8. 一個簡單的按鈕組件 
  9.  
  10. <Demo src="./demos/demo1.tsx" /> 
  11.  
  12. <Demo src="./demos/demo2.tsx" /> 

看看效果:

用它來調試組件相當省心,調試完成等于文檔也寫好了,還有自動提取的代碼演示,做到了開箱即用。

組件很重要的一部分是 API 文檔,要是能自動從 typescript 注釋中提取就好了。沒錯,vite-pages 支持了這項功能。

只需要在 MDX 中引入 TsInfo 組件,并設置類型地址和名稱:

  1. <TsInfo src="./types.ts" name="ButtonProps" /> 

將 ts 類型提取出一個表格,能識別必填/描述/默認值等。有了這個功能就不用擔心文檔和代碼割裂的問題了

目前這個插件官方主題自帶趨向于組件文檔模式,基本功能齊全,沒有多余花哨的功能。如果想實現組件在線編輯預覽的話,可以 fork vite-pages-theme-doc 這個庫,然后可以改為自己想要的樣式,添加 react-live 支持在線實時編輯預覽。

官方默認沒有提供博客主題。自己實現不難,因為 vite-plugin-react-pages 不渲染任何 DOM 節點,一切渲染相關都可以從 vite-pages-theme-doc 這個庫中修改。

小提示

總結當前使用情況來看,使用了該插件會使 Vite 自動依賴預構建失效。你需要手動將 node_modules 中的包添加到 optimizeDeps.include 中。比如 vite-pages-theme-doc 、lodash 等,否則會出現打開頁面的時候重復刷新的情況。

github: https://github.com/vitejs/vite-plugin-react-pages

社區的主題實現:https://github.com/Codpoe/vite-pages-theme-press

 

責任編輯:姜華 來源: 前端星辰
相關推薦

2021-12-27 13:57:34

Vite 工具項目

2019-11-11 13:40:45

Python 開發編程語言

2023-07-18 19:11:21

配置信令系統

2023-11-23 13:46:00

AI訓練

2020-10-27 15:01:25

編程語言PythonJava

2024-12-04 13:54:19

pnpm存儲項目

2024-11-21 16:46:12

2015-04-17 09:34:42

程序員

2018-07-05 17:12:31

Vostro

2019-09-08 23:13:09

Git日志開源

2025-11-05 08:48:39

2023-02-14 15:00:38

開發者ChatGPT

2022-03-04 12:09:25

SQL數據量多表查詢

2021-09-09 18:12:22

內存分段式網絡

2013-12-06 10:11:48

Windows 8Windows 7Windows 8.1

2021-11-12 11:31:27

數據結構算法貪心解法

2025-07-15 09:27:29

2014-07-23 10:19:02

小米4

2010-01-11 14:58:59

D-LINK交換機設置
點贊
收藏

51CTO技術棧公眾號

亚洲小说欧美另类社区| 久操视频在线观看| 99久久久久国产精品免费| 国产精品96久久久久久又黄又硬| 少妇性l交大片7724com| 在线免费观看的av网站| 国产一区二区三区av电影| 欧美国产精品va在线观看| 自拍视频一区二区| 99久久婷婷国产综合精品首页| 亚洲婷婷综合色高清在线| 菠萝蜜视频国产在线播放| 进去里视频在线观看| 中文字幕日韩在线| 五月激情综合网| 欧美激情第六页| 亚洲自拍偷拍另类| 激情欧美日韩一区| 一区二区三区视频观看| 亚洲精品久久久久久| 依依综合在线| 亚洲天堂成人在线观看| 好看的日韩精品视频在线| 日本三级一区二区| 久久在线视频免费观看| 亚洲国产三级网| 第一区免费在线观看| heyzo高清国产精品| 久久精品日韩一区二区三区| 亚洲一区精品电影| 国产精品suv一区| 国产精品精品国产一区二区| 亚洲精品美女视频| 6080国产精品| 自拍偷自拍亚洲精品被多人伦好爽| 国产精品乱子久久久久| 看高清中日韩色视频| av中文字幕免费在线观看| 久久精选视频| 97精品视频在线观看| 日韩精品一区二| 亚洲理论电影在线观看| 毛片在线能看| 国产成人午夜视频| 国产精品丝袜高跟| 国产精品黄色网| 91超碰成人| 中文字幕日韩av综合精品| 国产伦精品一区二区三区精品 | 日韩精品免费观看| xxww在线观看| 电影一区二区三| 亚洲成人精品一区| 九九久久九九久久| 米奇精品一区二区三区| 91麻豆国产福利在线观看| 999国内精品视频在线| 亚洲视频在线观看免费视频| 麻豆久久精品| 97成人超碰免| 日本中文字幕免费| 亚洲激情婷婷| 欧美精品激情在线观看| 国产a免费视频| 亚洲女同一区| 久久影院资源网| 青青操在线播放| 日韩系列欧美系列| 中文字幕欧美精品在线| 久久久久久久久久久久| 影视先锋久久| 亚洲一区第一页| 中国美女乱淫免费看视频| 国产精品巨作av| 91精品在线一区二区| 污污动漫在线观看| 日日夜夜一区| 91精品国产色综合久久ai换脸| 欧美三级午夜理伦三级富婆| 激情久久99| 欧美日韩成人在线| 精品综合久久久久| 国产成人久久精品一区二区三区| 欧美精品国产精品| 一卡二卡三卡四卡五卡| 午夜免费欧美电影| 精品动漫一区二区三区在线观看| 一起草最新网址| 午夜视频在线观看精品中文| 日韩欧美的一区| 中文字幕 日本| 亚洲精品推荐| 欧美激情亚洲自拍| 日韩精品一区二区三区久久| а√天堂8资源中文在线| 亚洲一区二区欧美激情| 天天夜碰日日摸日日澡性色av| 国产不卡人人| 欧美午夜电影一区| 色综合五月婷婷| 最新国产精品精品视频| 亚洲丁香婷深爱综合| 欧美成人午夜精品免费| 欧美日韩老妇| 欧美裸体xxxx极品少妇| 国产精品18p| 噜噜噜91成人网| 91理论片午午论夜理片久久| 欧美一级一区二区三区| 国产亚洲自拍一区| 玖玖精品在线视频| 极品美女一区| 欧美一二三四区在线| 先锋资源av在线| 日韩欧美精品| 久久精品99久久久香蕉| www.xxxx日本| 亚洲一区二区三区高清| 91九色在线观看视频| 久久青青视频| 欧美一区二区久久| 成年女人免费视频| 色狠狠久久av综合| 精品国产自在精品国产浪潮 | 波多野结衣午夜| 国产一区二区三区四区在线观看| 九九九九精品九九九九| 精品视频在线一区二区| 欧美午夜精品久久久久久久| 精品国产鲁一鲁一区二区三区| 亚洲三级精品| 欧美成人激情在线| 无码人妻精品一区二区三区9厂| 国产乱子伦一区二区三区国色天香| 久久精品一区二区三区不卡免费视频| av网站大全在线| 日本韩国欧美一区| 日韩a一级欧美一级| 国产精品片aa在线观看| 欧美韩国理论所午夜片917电影| 中文字幕免费视频观看| av一区二区三区黑人| 特级黄色录像片| jizz欧美| 亚洲欧美制服第一页| 国产精品999久久久| 国产一区二区日韩精品| 亚洲最大免费| 在线手机中文字幕| 欧美一区二区网站| 人人艹在线视频| 美女性感视频久久| 日本一区二区三区视频在线观看 | 福利网址在线观看| 91在线云播放| 九九爱精品视频| 66精品视频在线观看| 伦伦影院午夜日韩欧美限制| 亚洲无码精品国产| 国产精品丝袜久久久久久app| 精品www久久久久奶水| 老司机精品在线| 久久久久久久国产精品| 亚洲精品成人电影| 亚洲国产欧美一区二区三区丁香婷| 麻豆网站免费观看| 中文精品久久| 97人人模人人爽人人喊38tv| 操你啦视频在线| 欧美成人一区二区三区| 国模无码国产精品视频| 国产不卡在线一区| 99在线观看视频免费| 日本亚州欧洲精品不卡| 超薄丝袜一区二区| 亚洲高清精品视频| 午夜亚洲国产au精品一区二区| 亚洲美女在线播放| 亚洲自啪免费| 日韩av大全| 懂色aⅴ精品一区二区三区| 中文字幕亚洲欧美日韩高清| 中文字幕在线播出| 亚洲特级片在线| 久草福利在线观看| 狠狠色狠狠色综合日日tαg | 白嫩白嫩国产精品| 97av在线视频免费播放| 三区在线视频| 欧美日韩激情一区二区三区| 1024手机在线视频| 99久久精品免费观看| 国产精品乱码久久久久| 天天影视欧美综合在线观看| 97视频中文字幕| 丁香花在线电影小说观看| 亚洲国语精品自产拍在线观看| 欧美精品韩国精品| 中文字幕一区二区三区在线观看| 午夜激情视频网| 亚洲国内精品| 亚洲欧美电影在线观看| 91成人噜噜噜在线播放| 国产91热爆ts人妖在线| 国产三区视频在线观看| 精品成人免费观看| 伊人成年综合网| 亚洲精品免费播放| 亚洲一级中文字幕| 国产自产v一区二区三区c| 国产av国片精品| 日韩成人激情| 国产视频一区二区三区四区| 日本精品不卡| 欧美激情视频网址| 蜜桃免费在线| 精品少妇一区二区三区免费观看| 中文字幕一区在线播放| 亚洲免费电影在线| 国产高潮呻吟久久| 高清免费成人av| 一区二区三区视频在线观看免费| 黄色综合网站| 一区二区三区av在线| 日韩高清一级| 亚洲在线视频观看| av影院在线免费观看| 精品国内亚洲在观看18黄| 神马久久久久| 精品日产卡一卡二卡麻豆| wwwwww在线观看| 欧美午夜片在线免费观看| 91精品一区二区三区蜜桃| 国产亚洲欧美日韩俺去了| yjizz视频| 免费在线观看不卡| 日韩欧美精品免费| 亚洲成人免费| 亚洲成色最大综合在线| 日韩精品欧美大片| 成人欧美一区二区三区在线观看| 日韩国产精品久久久久久亚洲| 99精品免费视频| 蜜桃传媒视频麻豆一区 | 亚洲男人的天堂网站| 99久久国产热无码精品免费| 日韩欧美在线视频| 欧美日韩中文视频| 亚洲精品中文在线| 免费黄色国产视频| 国产精品嫩草影院com| 国产成人av一区二区三区不卡| 成人成人成人在线视频| 少妇欧美激情一区二区三区| 久久精品国产第一区二区三区| 少妇人妻互换不带套| 国产欧美大片| 丁香花在线影院观看在线播放| 欧美日本三区| 国产精品免费看久久久无码| 亚洲欧美色图| 日本一二三区视频在线| 91成人观看| 亚洲精品国产精品国自产观看| 国产99精品| 日韩激情久久| 欧美黄色网视频| 国产精品视频一区二区三区经| 亚洲视频导航| 成人黄色网址| 亚洲小视频在线| 久久精品a一级国产免视看成人 | 波多野结衣亚洲一二三| 性欧美视频videos6一9| 老司机福利在线视频| 色噜噜狠狠色综合网图区 | 制服丝袜专区在线| 欧美最顶级的aⅴ艳星| 中文字幕在线免费观看视频| 欧美激情三级免费| 看黄在线观看| 日本午夜精品理论片a级appf发布| 超级碰碰久久| 国产精品视频中文字幕91| 欧美少妇激情| 97超碰人人看人人| 在线精品国产亚洲| 国产亚洲精品美女久久久m| 天海翼精品一区二区三区| 欧美综合77777色婷婷| 成人在线一区| 亚洲国产日韩综合一区| 国产成人精品999在线观看| 亚洲一区在线免费| 一二三区不卡| 免费成人在线视频网站| 日本大胆欧美人术艺术动态| 一级淫片在线观看| 国产成人精品一区二区三区四区| 国产女人18毛片水真多18 | 中文字幕av久久爽一区| 中文字幕制服丝袜一区二区三区| 日韩va亚洲va欧美va清高| 五月天中文字幕一区二区| www.亚洲激情| 精品国产一区二区在线观看| 国产原创av在线| 久久999免费视频| 不卡一二三区| 亚洲xxxx视频| 精品一区电影| 精品无码国产一区二区三区av| 日韩中文字幕91| 婷婷激情综合五月天| 国产成人亚洲综合a∨婷婷 | 日韩一级二级| 成人在线观看av| 日韩黄色大片网站| 欧美国产日韩激情| 久久99精品久久久久久| 国产精品无码一区二区三区免费| 国产精品成人在线观看| 日本三级一区二区| 日韩亚洲欧美一区| wwwww在线观看免费视频| 欧美激情中文网| 日韩在线你懂得| 欧美成人黑人猛交| 麻豆视频在线| 8x海外华人永久免费日韩内陆视频| 自拍偷拍亚洲视频| 亚洲一区二区三区在线视频| 视频国产一区| 婷婷五月综合缴情在线视频| 久国产精品韩国三级视频| b站大片免费直播| 污片在线观看一区二区| а√天堂资源在线| 久久久91精品国产| 国产精品xxx| 日韩三级电影免费观看| 久久久久国产精品一区二区| 亚洲美女在线播放| 亚洲国产裸拍裸体视频在线观看乱了| 国产精品综合在线| 日韩中文字幕在线看| a∨色狠狠一区二区三区| 日韩精品欧美在线| 鲁大师成人一区二区三区| xxxx日本免费| 色成年激情久久综合| 瑟瑟在线观看| 2020久久国产精品| 亚洲人和日本人hd| 99免费视频观看| 久久精品亚洲乱码伦伦中文| 久久久精品视频网站| 亚洲人成五月天| 成人免费福利| 亚洲免费不卡| 国产一区二区三区免费看| 国产一区二区播放| 亚洲第一区中文字幕| av3级在线| 蜜桃传媒一区二区| 日本欧美大码aⅴ在线播放| 国产精品成人在线视频| 91精品欧美一区二区三区综合在| 国产激情小视频在线| yy111111少妇影院日韩夜片| 黄色亚洲在线| 精品人妻无码一区二区三区| 色哟哟国产精品| 日本在线观看免费| 亚洲在线一区二区| 99精品国产99久久久久久福利| 给我免费观看片在线电影的| 91久久香蕉国产日韩欧美9色| 国内av一区二区三区| 91精品国产综合久久男男| 韩日成人av| 四虎国产精品成人免费入口| 欧美日韩高清一区二区不卡| 色女人在线视频| 欧美一区二区影视| 国产一区二区三区在线看麻豆| 精品无码人妻一区二区三区品| 亚洲精品综合久久中文字幕| 亚洲精品aaa| 妞干网在线视频观看| 日本一区二区综合亚洲| 精品人妻一区二区三区含羞草| 日本在线观看天堂男亚洲| 99久久99久久精品国产片桃花 | 日韩国产一区二区三区| 国产男女无遮挡猛进猛出| 色婷婷综合久久久中文一区二区| 黄色精品免费看| 久久久久无码国产精品一区| 精品亚洲成a人|