Appearance
React コンポーネントを表示する
以下の手順で、VitePress のページに React コンポーネントを表示することが可能です。
1. install
bash
npm install react react-dom @types/react @types/react-dom
2. md ファイルにスクリプトを追加
md
<div ref="el" />
<script setup>
import { createElement } from "react";
import { createRoot } from "react-dom/client";
import { ref, onMounted } from "vue";
import Sample from "./Sample"; // 表示したい React コンポーネント
const el = ref();
onMounted(() => {
const root = createRoot(el.value);
root.render(createElement(Sample, {}, null));
});
</script>
sample
実際に React コンポーネントを表示するサンプルコードを以下に示します。
サンプルコード/Sample.tsx
tsx
import React from "react";
import { useState } from "react";
export const buttonStyle = {
color: "white",
backgroundColor: "green",
padding: "8px 16px",
borderRadius: "8px",
cursor: "pointer",
fontSize: "16px",
};
export default function Counter() {
const [count, setCount] = useState(0);
function handleClick() {
const newCount = count + 1;
setCount(newCount);
}
return (
<button onClick={handleClick} style={buttonStyle}>
Counter : {count} times clicked
</button>
);
}
plugin
React のコンポーネントを表示するのは、以上の手順で可能ですが、vite のプラグインを使用することでバンドルサイズの削減やパフォーマンスの向上が期待できます。
1. @vitejs/plugin-react をインストール
@vitejs/plugin-react をインストールします。
bash
npm i @vitejs/plugin-react
2. config にプラグインを追加
js
// ./.vitepress/config.mts
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
export default defineConfig({
vite: {
plugins: [react()],
},
});
まとめ
以上の手順で、VitePress のページに React コンポーネントを表示することが可能です。
プラグインを使用することで、バンドルサイズの削減やパフォーマンスの向上が期待できます。