组件文档页面推荐手写HTML+原生JS,避免React/Vue框架干扰;API表格需固定Name/Type/Default/Description列,Type写明确类型,Default写具体值;示例代码提供最小可运行片段并用相对路径;锚点跳转需确保ID唯一、全小写无特殊字符,并用CSS scroll-margin-top适配固定header。
纯 HTML 组件文档页面,不推荐硬套 React/Vue。你只是想让人看清 props、events、slots 怎么用,不是搭应用。框架反而增加构建、路由、状态管理的干扰,连本地双击打开 index.html 都可能报跨域或模块错误。
真正轻量又可控的方式是:手写 HTML + 原生 JS 交互(比如折叠示例代码、切换标签页),用 localStorage 记住展开状态即可。如果已有 Webpack/Vite 项目,再考虑用 VitePress 或 Storybook —— 但那已是另一层需求。
新手常把 API 文档写成 Word 式大段文字,结果用户找不到 disabled 是布尔值还是字符串,也看不出必填项。正确做法是固定字段列:Name、Type、Default、Description,且每行只描述一个 API 成员。
Type 列必须明确基础类型,如 string、number、boolean;联合类型写成 string | number,不要写“字符串或数字”Name 列末尾加 ?(如 size?),别靠文字说明“非必填”Default 列写具体值:false、''、null,避免“无”“空”“默认不启用”这类模糊表述<table> 即可,不需要 fancy UI 库 —— 可读性比样式重要十倍直接把 <my-button></my-button> 写死在文档里,用户复制粘贴后大概率跑不起来:缺样式、缺注册、缺依赖。得提供「最小可运行片段」。
立即学习“前端免费学习笔记(深入)”;
每个示例区块用 <pre><code> 包裹,并标注语言(language-html 或 language-js)。关键点:
<html>、<head>(含必要 CSS 引入)、<body> 和组件标签// 在组件定义之后执行,避免用户误以为这是初始化入口style 或 script,全部外链或注释说明来源(如“需引入 button.css”)./dist/my-button.js,别写 https://cdn.example.com/... —— 用户离线时就废了点击 #props 没反应?八成是 ID 冲突或滚动行为被拦截。原生锚点依赖元素 id 属性严格匹配,且浏览器默认滚动到视口顶部 —— 但文档页常有固定 header,导致标题被遮住。
解决方法很简单:
<h3 id="props">Props</h3>,ID 全小写、无空格、无特殊字符(on-click ✅,onClick ❌)h3 { scroll-margin-top: 60px; }(适配 60px 高的 header),不用 JS 监听 hashchange<a href="#props">Props API</a>,别用 javascript:void(0) + click 事件模拟 —— 损失 SEO 和前进后退能力最常被忽略的是:多个相同 ID(比如重复用了 id="example")会让 document.getElementById 返回第一个,后续锚点全指向它。检查一遍 ID 唯一性,比调任何 JS 都管用。