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を組み込んだりすることが可能になります。