MDXでのコンポーネント活用術
MDXの大きな特徴の一つは、Markdownの中でReactコンポーネントを使用できることです。この記事では、MDXでのコンポーネント活用について詳しく説明します。
コンポーネントのインポート
MDXファイルでは、通常のJavaScriptモジュールと同じようにコンポーネントをインポートできます:
import { Alert } from './Alert'
import { CodeBlock } from './CodeBlock'
import { Chart } from './Chart'
基本的な使用方法
インポートしたコンポーネントは、Markdownの中で直接使用できます:
# データの可視化
以下のグラフは月間アクセス数を示しています:
<Chart
data={[10, 20, 30, 25, 15]}
title="月間アクセス推移"
/>
## 警告メッセージ
<Alert type="warning">
このセクションは準備中です
</Alert>
コンポーネントの作成例
MDXで使用する独自のコンポーネントを作成する例:
// Alert.jsx
export function Alert({ type, children }) {
return (
<div className={`alert alert-${type}`}>
{children}
</div>
)
}
レイアウトコンポーネント
MDXファイル全体のレイアウトを制御するコンポーネントも作成できます:
// BlogLayout.jsx
export function BlogLayout({ children, meta }) {
return (
<article>
<h1>{meta.title}</h1>
<time>{meta.date}</time>
{children}
</article>
)
}
まとめ
コンポーネントを活用することで、MDXの表現力は大きく広がります。記事の中に動的な要素を追加したり、複雑なUIを組み込んだりすることが可能になります。