内联组件
导入组件
/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。 - 减少重新渲染:将大型组件拆分为较小的组件。
- 懒加载:组件代码无法懒加载。所有组件都会随页面一起加载。如果某个组件在挂载时会执行资源密集型操作(例如获取数据或进行大量计算),请使用条件渲染,将其挂载推迟到用户交互时。