ðïž é¡¹ç®æ¶æè®Ÿè®¡ææ¡£ â
IMPORTANT
åå²åœæ¡£è¯ŽæïŒ2026-03-11ïŒïŒæ¬æäžç Storybookã.storybookãpnpm storybookã*.stories.tsx å
容䞺åå²é¶æ®µè®°åœã项ç®ç°å·²ç»äžè¿ç§»äžº VitePress ç»ä»¶ææ¡£æ¹æ¡ïŒè¯·äœ¿çš pnpm devïŒå¹¶åš front/components/**/index.md äžéè¿ <demo react="..."/> æ¥çç»ä»¶æŒç€ºã
æŠè§ â
æ¬ææ¡£æè¿° cmwrun å端ç¥è¯ç«çæŽäœæ¶æãæ žå¿æš¡åãå±çº§å ³ç³»åæ°æ®æµã
ç³»ç»æ¶æåŸ â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â çšæ·æµè§åš â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â
âŒ
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â VitePress ç«ç¹ïŒåç«¯ïŒ â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
â â
â ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â
â â åºçšå±ïŒé¡µé¢ãç»ä»¶ãåžå±ïŒ â â
â â ââââââââââââââââââââââââââââââââââââââââââââââââââââ â â
â â â Pages: éŠé¡µãç¥è¯åºãç»ä»¶åºãäºç«¯èœåãæŽæ°è®°åœ â â â
â â â Components: Button, Select, Form, ... â â â
â â â Layouts: Doc, Home, Sidebar Navigation â â â
â â ââââââââââââââââââââââââââââââââââââââââââââââââââââ â â
â ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â
â â â
â ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â
â â äžå¡é»èŸå±ïŒHooksãå·¥å
·åœæ°ïŒ â â
â â ââââââââââââââââââââââââââââââââââââââââââââââââââââ â â
â â â Hooks: useGuide (亀äºå¯Œèª) â â â
â â â Utils: 鲿ãèæµãæ·±æ·èŽãç®æ³ç â â â
â â â Services: API è°çšãæ°æ®è·å â â â
â â ââââââââââââââââââââââââââââââââââââââââââââââââââââ â â
â ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â
â â â
â ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â
â â çæ§ååæå±ïŒæ§èœãé误ãçšæ·è¡äžºïŒ â â
â â ââââââââââââââââââââââââââââââââââââââââââââââââââââ â â
â â â Performance: Web Vitals çæ§ãæ§èœåºå线 â â â
â â â ErrorTracking: å
šå±é误æè· â â â
â â â Sentry: éè¯¯äžæ¥ãæ§èœçæ§ â â â
â â â Analytics: çšæ·è¡äžºè¿œèžª â â â
â â ââââââââââââââââââââââââââââââââââââââââââââââââââââ â â
â ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â
â â â
â ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â
â â åºå±æ¯æïŒæ ·åŒãäž»é¢ãé
çœ®ïŒ â â
â â ââââââââââââââââââââââââââââââââââââââââââââââââââââ â â
â â â Theme: 亮è²/æ·±è²äž»é¢ãCSS åé â â â
â â â Styles: å
šå±æ ·åŒãç»ä»¶æ ·åŒ â â â
â â â Config: VitePress é
眮ãæå»ºé项 â â â
â â ââââââââââââââââââââââââââââââââââââââââââââââââââââ â â
â ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â
â â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â
âââââââââââââââââââââââŒââââââââââââââââââââââ
⌠⌠âŒ
âââââââââââ âââââââââââ âââââââââââ
â Sentry â â Analyticsâ â CDN â
â é误远螪 â â æ°æ®æ¶é â â å
容åå â
âââââââââââ âââââââââââ âââââââââââæ žå¿æš¡å诊解 â
1. åºçšå±ïŒApplication LayerïŒ â
页é¢ïŒPagesïŒ â
/: éŠé¡µ (index)
ââ Hero åºåãç¹æ§å±ç€ºãå¿«ééŸæ¥
/front/knowledge/: ç¥è¯åº
ââ KMP ç®æ³ãEvent LoopãReact Diffãæž²ææµæ°Žçº¿...
/front/components/: ç»ä»¶åº
ââ ButtonãSelectãForm ç»ä»¶æŒç€ºåææ¡£
/cloud-capabilities: äºç«¯èœå
ââ äºç«¯åèœä»ç»
/updates: æŽæ°è®°åœ
ââ çæ¬åå²åæŽæ°æ¥å¿ç»ä»¶ïŒComponentsïŒ â
Button (æé®)
ââ Props: variant, size, disabled, loading, block, onClick
ââ Stories: 11 䞪亀äºåŒæ
äº
ââ Test: 12 䞪åå
æµè¯
Select (äžæéæ©)
ââ Props: options, value, onChange, disabled, error, placeholder
ââ Stories: 7 䞪亀äºåŒæ
äº
ââ Test: 11 䞪åå
æµè¯
Form (衚å)
ââ HighPerformanceForm (髿§èœè¡šå)
ââ PubSubForm (äºä»¶é©±åšè¡šå)
ââ æŒç€ºåææ¡£åžå±ïŒLayoutsïŒ â
DefaultTheme (é»è®€äž»é¢)
ââ Navigation: é¡¶éšå¯Œèªã䟧蟹æ
ââ Content: æç« å
容åºå
ââ Sidebar: æç« 富èª
ââ Footer: 页èãç€Ÿäº€éŸæ¥
Doc Layout: ææ¡£äžçšåžå±
Home Layout: éŠé¡µäžçšåžå±2. äžå¡é»èŸå±ïŒBusiness Logic LayerïŒ â
HooksïŒèªå®ä¹éé¡¹ïŒ â
useGuide.ts (亀äºå¯ŒèŠœ)
ââ åèœ: åå»ºåæ¥éª€æå¯Œ
ââ æ¹æ³: start(), stop(), next(), prev()
ââ ç¹æ§: èªåšæ»åšãå
çŽ å®äœãéè¯æºå¶
ââ æµè¯: 11 䞪æµè¯çšäŸïŒ94.59% èŠççïŒå·¥å ·åœæ°ïŒUtilsïŒ â
鲿 / èæµ: 鲿¢é¢ç¹è§Šå
æ·±æµ
æ·èŽ: 对象å€å¶
ç®æ³: KMPãæåºãéåœç
å笊䞲å€ç: æ ŒåŒåãè§£æãéªè¯
ç±»åæ£æ¥: ç±»åå®å«ãç±»åèœ¬æ¢æå¡ïŒServicesïŒ â
API è°çš: è·åæ°æ®ãæäº€è¡šå
æ°æ®èœ¬æ¢: è§èåååºæ°æ®
çŒå管ç: åå°äžå¿
èŠç请æ±
é误å€ç: ç»äžçé误å€ççç¥3. çæ§ååæå±ïŒMonitoring & Analytics LayerïŒ â
æ§èœçæ§ïŒPerformance MonitoringïŒ â
performance.ts
ââ Web Vitals éæ
â ââ CLS: Cumulative Layout ShiftïŒåžå±çš³å®æ§ïŒ
â ââ FID: First Input DelayïŒäº€äºååºïŒ
â ââ FCP: First Contentful PaintïŒéŠåèïŒ
â ââ LCP: Largest Contentful PaintïŒäž»å
容ïŒ
â ââ TTFB: Time to First ByteïŒæå¡åšååºïŒ
â
ââ é¿ä»»å¡çæ§
ââ PerformanceObserver API
performance-baseline.ts
ââ æ§èœææ åºå线å®ä¹
ââ Good / Warning / Critical éåŒ
ââ 宿¶åèŠæºå¶
ââ æ§èœæ¥åçæé误远螪ïŒError TrackingïŒ â
error-tracking.ts
ââ å
šå±é误å€ç
â ââ window.onerrorïŒèæ¬é误ïŒ
â ââ unhandledrejectionïŒPromise æç»ïŒ
â ââ èµæºå 蜜倱莥ïŒIMG, SCRIPT, LINKïŒ
â
ââ é误åç±»åç»è®¡
ââ é误åå²è®°åœïŒæå€ 50 æ¡ïŒ
ââ é误æ¥åçæ
sentry-integration.ts
ââ Sentry SDK éæ
ââ èªåšäžæ¥ïŒç产ç¯å¢ïŒ
ââ èªå®ä¹äºä»¶è¿œèžª
ââ çšæ·ä¿¡æ¯ç®¡ç
ââ æ§èœåé误çç»äžå¹³å°åæå远螪ïŒAnalyticsïŒ â
çšæ·è¡äžº: 页é¢è®¿é®ãç¹å»ãæ»åš
æ§èœæ°æ®: å 蜜æ¶éŽãèµæºå€§å°ãæž²ææ¶éŽ
é误信æ¯: é误类åãå æ è·èžªãçšæ·ç¯å¢
èªå®ä¹äºä»¶: äžå¡çžå
³çå
³é®æäœ4. åºå±æ¯æïŒInfrastructure LayerïŒ â
äž»é¢ç³»ç»ïŒTheme SystemïŒ â
.vitepress/theme/
ââ Vue ç»ä»¶
â ââ Avatar3D: 3D èæè§è²
â ââ BackToTop: è¿åé¡¶éš
â ââ KeyboardShortcuts: å¿«æ·é®åž®å©
â ââ ThemeSwitcher: äž»é¢åæ¢
â ââ ReadingProgress: é
读è¿åºŠ
â ââ others...
â
ââ æ ·åŒ
â ââ custom.css: èªå®ä¹æ ·åŒ
â ââ print.css: æå°æ ·åŒ
â
ââ index.ts: äž»é¢å
¥å£ïŒè®Ÿçœ®ææç»ä»¶åçæ§VitePress é 眮ïŒBuild ConfigurationïŒ â
.vitepress/config.mts
ââ ç«ç¹åºæ¬ä¿¡æ¯
ââ 富èªå䟧蟹æ é
眮
ââ Markdown æä»¶é
眮
â ââ æ¶éŽçº¿æä»¶
â ââ Mermaid åŸè¡š
â ââ Demo æŒç€º
â ââ 代ç ååç»
â
ââ æå»ºäŒå
â ââ 代ç åå²
â ââ äŸåºååç»
â ââ Bundle åæ
â
ââ PWA é
眮
ââ Manifest
ââ Workbox çŒåçç¥
ââ çŠ»çº¿æ¯ææ°æ®æµåäº€äº â
1. 页é¢å 蜜æµçš â
çšæ·è®¿é® â VitePress è·¯ç±å¹é
â å 蜜页é¢ç»ä»¶
â
äž»é¢åå§åïŒtheme/index.tsïŒ
ââ åå§åæ§èœçæ§ (performance.ts)
ââ åå§åé误远螪 (error-tracking.ts)
ââ åå§åæ§èœåºå (performance-baseline.ts)
ââ åå§å Sentry (sentry-integration.ts)
ââ æèœœ Vue ç»ä»¶ (Avatar3D, Navigation, etc.)
â
å
容枲æ â æ§èœææ æ¶é â Web Vitals åè°è§Šå
â
çšæ·äº€äºè§Šå â äºä»¶çå¬ â é误/æ§èœæ°æ®äžæ¥2. ç»ä»¶äœ¿çšæµçš â
富å
¥ç»ä»¶ â Props éªè¯ â ç»ä»¶æž²æ
â
çšæ·äº€äºïŒç¹å»ãèŸå
¥ãçïŒ
â
äºä»¶å€çåšæ§è¡ â äžå¡é»èŸå€çïŒHooksãUtilsïŒ
â
DOM æŽæ° â éæ/éç» â æ§èœæ°æ®æ¶é
â
æ§èœææ æ£æ¥ â æ¯åŠè¶
è¿åºå线ïŒ
ââ æ¯ â è®°åœèŠå/é误 â å¯éäžæ¥ Sentry
ââ åŠ â æ£åžžç»§ç»3. é误å€çæµçš â
åºçšåçé误ïŒèæ¬ãèµæºãPromiseïŒ
â
å
šå±é误å€çåšæè· (error-tracking.ts)
â
é误åç±»åè§èå
ââ é误类å (èæ¬/èµæº/Promise)
ââ éè¯¯çº§å« (error/warning/info)
ââ é误äžäžæ (URL, UA, æ¶éŽ)
â
ä¿åå°æ¬å°é误å衚
ââ æå€æŸç€ºæè¿ 50 æ¡
ââ æ·»å æ¶éŽæ³å ID
â
ç产ç¯å¢ïŒ
ââ æ¯ â åéå° Sentry (async)
ââ åŠ â åŒåç¯å¢èŸåºæ¥å¿
â
èŠåæ¯åŠå
³é®ïŒ
ââ æ¯ â çæåèŠäºä»¶
ââ åŠ â éé»è®°åœæä»¶ç®åœç»æ â
vitePress/
âââ .github/
â âââ workflows/
â âââ ci.yml # GitHub Actions å·¥äœæµïŒå¹¶è¡ä»»å¡ïŒ
â
âââ .storybook/ # Storybook é
眮
â âââ main.ts
â âââ preview.ts
â
âââ .vitepress/ # VitePress é
眮åäž»é¢
â âââ config.mts # æ žå¿é
眮æä»¶
â âââ theme/
â â âââ index.ts # äž»é¢å
¥å£
â â âââ performance.ts # Web Vitals çæ§
â â âââ error-tracking.ts # é误远螪
â â âââ performance-baseline.ts # æ§èœåºå线
â â âââ sentry-integration.ts # Sentry éæ
â â âââ custom.css # èªå®ä¹æ ·åŒ
â â âââ print.css # æå°æ ·åŒ
â â âââ components/ # Vue äž»é¢ç»ä»¶
â â âââ seo.ts # SEO é
眮
â âââ dist/ # æå»ºèŸåº
â âââ bundle-analysis.html # Bundle åææ¥å
â âââ [çœç«æä»¶]
â
âââ front/ # æ žå¿å
容åç»ä»¶
â âââ components/
â â âââ Button/
â â â âââ button.tsx # ç»ä»¶æºç
â â â âââ button.test.tsx # åå
æµè¯
â â â âââ button.stories.tsx # Storybook æ
äº
â â â âââ index.md # ææ¡£
â â âââ Select/
â â â âââ select.tsx
â â â âââ select.test.tsx
â â â âââ select.stories.tsx
â â â âââ index.md
â â âââ Form/
â â âââ form.tsx
â â âââ pubsub-form.tsx
â â âââ index.md
â â
â âââ knowledge/ # ç¥è¯æç«
â âââ 鲿äžèæµ.md
â âââ Event-Loop诊解.md
â âââ React-Diffç®æ³è¯Šè§£.md
â âââ æµè§åšæž²ææµæ°Žçº¿äžéæéç».md
â âââ ...
â
âââ public/ # éæèµæºåæŒç€º
â âââ debounce-throttle-demo.html
â âââ event-loop-demo.html
â âââ react-diff-demo.html
â âââ [å
¶ä»æŒç€ºé¡µé¢]
â
âââ tests/ # E2E æµè¯
â âââ basic.spec.ts
â âââ advanced-interactions.spec.ts
â âââ comprehensive.spec.ts
â âââ ...
â
âââ vitest.config.ts # åå
æµè¯é
眮
âââ playwright.config.ts # E2E æµè¯é
眮
âââ tsconfig.json # TypeScript é
眮
âââ eslint.config.js # ESLint é
眮
âââ prettier.config.js # Prettier é
眮
â
âââ CONTRIBUTING.md # èŽ¡ç®æå
âââ OPTIMIZATION-SUMMARY.md # äŒåæ»ç»
âââ QUICK-REFERENCE.md # å¿«éåè
âââ README.md # é¡¹ç®ææ¡£éšçœ²æ¶æ â
Local Development
ââ pnpm dev (VitePress)
ââ pnpm storybook
Build & Analyze
ââ pnpm build
ââ pnpm build:analyze
ââ Security audit
GitHub Actions CI/CD
ââ Code Quality (å¹¶è¡)
ââ Unit Tests (å¹¶è¡)
ââ Build (å¹¶è¡)
â ââ E2E Tests (depends on build)
â ââ Performance Analysis (depends on build)
ââ Security Audit (å¹¶è¡)
ââ All Checks (ç»Œåæ£æ¥)
Production
ââ GitHub Pages (CDN)
ââ Sentry (é误/æ§èœäžæ¥)æ©å±åç»Žæ€æå â
æ·»å æ°é¡µé¢ â
- åš
front/knowledge/æçžåºç®åœå建.mdæä»¶ - åš
.vitepress/config.mtsç sidebar é çœ®äžæ·»å - ïŒå¯éïŒåŠæéèŠäº€äºïŒåš
public/å建 HTML æŒç€º
æ·»å æ°ç»ä»¶ â
- å建ç»ä»¶ç®åœ
front/components/ComponentName/ - çŒå
component.tsxæä»¶ - çŒå
component.test.tsxåå æµè¯ - çŒå
component.stories.tsxStorybook æ äº - çŒå
index.mdææ¡£ - åš
.vitepress/config.mtsäžæ·»å 富èª
æ§èœäŒå â
- çæ§ Web Vitals ïŒéè¿ performance.tsïŒ
- æ£æ¥æ§èœåºå线åèŠïŒperformance-baseline.tsïŒ
- åæ Bundle 倧å°ïŒpnpm build:analyzeïŒ
- äŒåå ³é®è·¯åŸæž²æ
éè¯¯è°æ¥ â
- æ¥çæµè§åšæ§å¶å°ïŒåŒåç¯å¢ïŒ
- æ£æ¥é误远螪系ç»ïŒerror-tracking.tsïŒ
- åš Sentry ä»ªè¡šæ¿æ¥ç线äžé误
- äœ¿çš Playwright éç° E2E é®é¢
æ§èœç®æ åææ â
ð æ§èœç®æ
ââ éŠå±å 蜜: FCP < 1 ç§ â
ââ äž»å
容: LCP < 2.5 ç§ â
ââ 亀äºååº: FID < 100ms â
ââ åžå±çš³å®: CLS < 0.1 â
ââ æå¡åš: TTFB < 600ms â
𧪠æµè¯èŠç
ââ åå
æµè¯: 30+ çšäŸïŒ72% èŠç
ââ E2E æµè¯: 24+ çšäŸïŒå
šè·¯åŸèŠç
ââ æ»äœ: 54+ çšäŸïŒé«åºŠæµè¯
ðŠ Bundle äŒå
ââ 代ç åå²: route-based åå²
ââ äŸåºååç»: ç¬ç« shiki / mermaid chunks
ââ åŸåäŒå: CSS æžè¿åŒå 蜜
ââ çŒåçç¥: ç±»ååžæä»¶åææ¯æ æ»ç» â
| å±çº§ | ææ¯ | çæ¬ |
|---|---|---|
| æ¡æ¶ | Vue 3 | Latest |
| ææ¡£ | VitePress | 1.6.4 |
| æå»º | Vite | 7.x |
| è¯èš | TypeScript | 5.x |
| ç»ä»¶åº | React | 19.2.x |
| æµè¯ | Vitest, Playwright | Latest |
| ç»ä»¶ææ¡£ | Storybook | 10.2.15 |
| 代ç 莚é | ESLint, Prettier | Latest |
| çæ§ | Web Vitals, Sentry | Latest |
| éšçœ² | GitHub Pages + Actions | Native |
äžäžæ¥å级计å â
Phase 1 (çæ):
ââ Sentry ç产ç¯å¢é
眮
ââ æ§èœä»ªè¡šæ¿åŒå
ââ èªåšåéšçœ²èæ¬
Phase 2 (äžæ):
ââ ç°åºŠååžç³»ç»
ââ A/B æµè¯æ¡æ¶
ââ 宿¶åèŠç³»ç»
Phase 3 (é¿æ):
ââ çšæ·è¡äžºåæ
ââ æºèœæšèç³»ç»
ââ 犻线åºçšå¢åŒºæåæŽæ°: 2026-03-06 绎æ€è : cmwrun å¢é ææ¡£çæ¬: 1.0