跳转到主要内容
直接在 MDX 文件中使用 React 组件 和 hooks 在文档中构建交互式元素。

内联组件

直接在你的 MDX 文件中声明组件:

导入组件

组件文件必须位于 /snippets/ 文件夹中。更多信息请参阅 可复用片段。
不支持嵌套导入。请将所有被引用的组件直接导入到父 MDX 文件中。
在 snippets/ 中创建一个组件文件:
/snippets/color-generator.jsx
然后导入并使用它:

注意事项

  • 仅客户端渲染:自定义组件在页面加载后于浏览器中渲染,因此不会出现在服务端渲染的 HTML 中。这适用于你在 MDX 文件中使用 export 定义的组件,以及你从 snippet 中按名称导入的组件,例如 import { ColorGenerator } from "/snippets/color-generator.jsx"。你作为内容导入的 MDX snippet(例如 import MySnippet from "/snippets/my-snippet.mdx")会在服务端渲染。
  • SEO:由于自定义组件不在初始 HTML 中,搜索引擎可能无法完全索引其内容。
  • 首次加载:在自定义组件渲染期间,访客可能会看到闪烁或布局偏移。对于必须出现在初始 HTML 中或加载时不能发生偏移的内容,请改用内置组件,例如卡片和分栏。大多数内置组件都会在服务端渲染。
  • 可访问性:确保屏幕阅读器能够播报动态内容的变化。
  • 优化依赖数组:仅在 useEffect 中包含必要的依赖。
  • 缓存昂贵操作:在适当之处使用 useMemo 或 useCallback。
  • 减少重新渲染:将大型组件拆分为较小的组件。
  • 懒加载:组件代码无法懒加载。所有组件都会随页面一起加载。如果某个组件在挂载时会执行资源密集型操作(例如获取数据或进行大量计算),请使用条件渲染,将其挂载推迟到用户交互时。