1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Sandpack使ってみた

Last updated at Posted at 2022-10-20

概要

  • Sandpackというツールキットを少し使ってみました。Hello worldレベルの実験メモです。
  • Sandpackとは、次のような良くみかけるコード変更を試せるようなコードサンプルを表示するためのフレームワークです。
  • これを使って、技術的なブロクなどでの学習体験を改善できます。
    image.png
  • 以下の例は、Viteを用いたReact/TypeScriptアプリで、Reactコードを表示させる例ですが、React/TypeScript, Vue, Svelte, バニラJavaScriptなど多用なコードを表示できます。

プロジェクトの作成

  • ターミナルで次を実行します。
$ pnpm create vite sandpack-demo --template react-ts
$ cd sandpack-demo
$ pnpm install
$ pnpm run dev
  • これで、ブラウザで http://127.0.0.1:5173/ にアクセスするとViteの雛形アプリが表示されます。
  • ターミナルで(必要に応じてCtrl + Cで開発サーバーを停止し)、次のパッケージをインストールします。
$ pnpm add @codesandbox/sandpack-react

コードの変更

エディタで src\App.tsx を次に変更します。

import './App.css'
import { Sandpack } from "@codesandbox/sandpack-react";

function App() {
  return (
    <div className="App">
      <Sandpack template="react" />
      <p>
        自由にコードを変更してください。
      </p>
    </div>
  )
}

export default App

開発サーバーを止めていた場合は再度実行します。

$ pnpm run dev

次のように表示されます。すごいですね。

image.png

ここで、Hello Worldでないコードを追加するには次のようにSandpackコンポーネントのfilesというpropsを使用します。

import './App.css';
import { Sandpack } from '@codesandbox/sandpack-react';

const files = {
  '/App.js': `
    import { useState } from 'react'

    function App() {
      const [count, setCount] = useState(0)
    
      return (
        <div>
          <h1>Vite + React</h1>
          <div>
            <button onClick={() => setCount((count) => count + 1)}>
              count is {count}
            </button>
          </div>
        </div>
      )
    }
    export default App;
  `,
};

function App() {
  return (
    <div className='App'>
      <Sandpack template='react' files={files} />
      <p>自由にコードを変更してください。</p>
    </div>
  );
}

export default App;

image.png

参考

詳細はこちらの記事をどうぞ。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?