コース
React
「HTMLとCSSは書けるけれど、Reactの記事を読むと急に分からなくなる」——その段差を埋めるコースです。ViteとTailwindで環境を作り、コンポーネント・props・stateを1つずつ確かめながら、検索とお気に入りが動く小さな図鑑アプリを完成させます。
はじめよう
Reactって何?
Reactを知る全2レッスン
まず動かしてみる全3レッスン
データを流しこむ全3レッスン
動きをつける全3レッスン
つまずきを自力で直す全1レッスン
外のデータとつなぐ全3レッスン
ページを増やして、共有する全3レッスン
仕事で使うために全5レッスン
- 19再描画のしくみとmemo・useMemo・useCallback
memo()useMemo()useCallback() - 20stateが増えたらuseReducer
useReducer()dispatch()action - 21DOMを直接触る(refとポータル)
useRefcreatePortalref<dialog> - 22残りのフックと、いつ使うか
useIduseLayoutEffectuseImperativeHandleuseSyncExternalStore - 23画面全体を落とさない(Error BoundaryとSuspense)
ErrorBoundarygetDerivedStateFromError()lazy()Suspense
TypeScriptで書く全4レッスン
実務の道具立て全10レッスン
- 28データ取得は自前で書かない(TanStack Query)
useQuery()queryKeystaleTimeuseMutation() - 29フォームはライブラリに任せる(React Hook Form + zod)
useForm()register()zodResolver()z.object() - 30テストを書く(Vitest + Testing Library)
vitestrender()getByRole()userEvent - 31本物のブラウザで通しで試す(Playwright)
playwrightgetByRole()webServerstrict mode - 32部品をカタログにする(Storybook)
storybookCSFargsdecorators - 33Tailwind以外のスタイリング
CSS ModulesCSS-in-JSshadcn/uiRadix UI - 34Reactでのアクセシビリティ
aria-livetabIndexuseRef()role - 35動きをつける(Motion)
motionAnimatePresencelayoutprefers-reduced-motion - 36コードの置き場所と分け方
features/index.tseslintprettier - 37古いReactのコードを読む
クラスコンポーネントHOCrender propsPropTypes
本番で気をつけること全5レッスン
新しい書き方とその先全2レッスン
公開する全1レッスン
このコースについて
Reactは、画面を「コンポーネント」という部品に分けて組み立てるライブラリです。素のJavaScriptだと「どの要素を、どう書きかえるか」を毎回指示することになりますが、Reactでは「いまのデータならこう見える」とだけ書きます。あとの書きかえはReactがやります。この発想の切りかえがいちばんの山場なので、最初の回でそこだけを扱います。
JSX・コンポーネント・props・stateという4つの土台から始めて、一覧の描画、条件による出し分け、フォームの入力、状態の持ち上げ、useEffectでのデータ取得、カスタムフックまで進みます。毎回ひとつの作品「しまちゃんのことりずかん」を育てるので、部品の知識がばらばらにならず、最後に検索とお気に入りが動くアプリが手元に残ります。
前提はHTML・CSS・JavaScriptのコースです。TailwindとnpmはWebの現場でReactとほぼ必ずセットで出てくるので、このコースでも使います(Tailwindを知らなくても読めるようにクラスの意味は都度そえます)。環境はVite。前半はJavaScriptで進み、最後の章で**プロジェクトごとTypeScriptに移行**します(実務でよくある入り方です)。