Remixアプリの作成手順

Remix

はじめに

環境

% npm -v
10.7.0
% node -v
v20.14.0

Hello World

作成

% mkdir my-remix-app
% cd my-remix-app
% npm init -y
% npm i @remix-run/node @remix-run/react @remix-run/serve isbot@4 react react-dom
% npm i -D @remix-run/dev vite
  • vite.config.js の作成
  • app/root.jsx の作成
npx remix vite:build
  • package.json に以下を追加
"type": "module"

実行

npx remix-serve build/server/index.js

チュートリアル

作成

mkdir my-remix-tutorial
cd my-remix-tutorial

npx create-remix@latest --template remix-run/remix/templates/remix-tutorial

実行

npm run dev

知識

  • Remixのルートファイル規約において、.はURL内で/を作成する
  • $は動的セグメントを意味し、URLParamとも呼ばれ、paramsオブジェクトでアクセスできる
  • 親セグメントの末尾にアンダースコアを追加することで、ネストをオプトアウトできる
URLMatched RouteLayout
/app/routes/_index.tsxapp/root.tsx
/contracts/abcdeapp/routes/contacts.\$contactId.tsxapp/root.tsx
/contracts/abcde/editapp/routes/contacts.\$contactId_.edit.tsxapp/root.tsx
/contracts/abcde/destroyapp/routes/contacts.\$contactId.destroy.tsxapp/routes/contacts.\$contactId.tsx
  • app/root.tsxが最上位の親レイアウトであり、function Appをエクスポートする
  • App内のOutletコンポーネントは、子ルートを親レイアウト内で描画するために必要とされる
  • サイドバーのようにリンクをクリックしても更新する必要がない場合、クライアントサイドのルーティングを利用する。これには、<Link>を使用する
  • useLoaderDataを使用すると、自動でDBのデータをUIに同期できる
  • loaderの実装例で、contactの取得に失敗した場合、エラーページを表示するようにできる
  • RemixのFormは、リクエストをサーバーに送るのではなく、クライアントサイドルーティングを使用してルートのaction関数に送る
  • action関数内で、redirectできる
  • NavLinkを使うと、現在アクティブなリンクがわかる
  • useNavigationフックを使うと、次ページのローディング中の表示を制御できる
  • ルート名_indexは、ユーザーが親ルートの正確なパスにいるときに、このルートをマッチングしてレンダリングする

関連記事

カテゴリー

アーカイブ

Lang »