koSakano / react-mui-template

reactのmaterial uiパッケージを用いた際のテンプレート

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

React MUI Template

このリポジトリはMaterial UIを用いたReact環境のテンプレートです。

使用方法

環境はnpm run devでポート5173に立ち上がります。 ビルドされたコードが欲しい場合はnpm run buildを行なってください。distに生成されます。

storybookを用いたい場合はnpm run storybookを行なってください。.nvmrcで指定したバージョンではNODE_OPTIONS=--openssl-legacy-providernpm run storybookの前に配置して行なってください。

testを行いたい場合はnpm run testを行なってください。storybook内で行うテストはこのコマンドでは行われません。

コミットごとにhuskyが走って、変更があったファイルにprettierとeslintが走ります。無視したい場合は.husky配下を弄るか、git commit --no-verifyで無視して実行してください(無視させるのはお勧めしません)。

使用ライブラリ

非同期通信

axiosを用いて行なっています。axiosは詳細に設定を行うことが多いため、src/lib/axiosでラップしたものを利用するようにします。また、これらの依存関係をなるべく減らしたいため、src/apiでのみ使用します。

状態管理

非同期な状態はSWRで、同期的な状態はrecoilで管理しています。これらを使用する際はsrc/globalStatesに記述して、外部からの使用する際はsrc/globalStatesから行います。これによってrecoilやswrのロジックの隠蔽を行うことができます。recoilのkeyはsrc/globalStatesは以下のrecoilKeysに保存しています。

フォームのバリデーション

react-hook-formzodを用いて行います。大きなルールは現段階では用意していないです。

ルーティング

React Routerを用いています。src/routesでルーティングを行います。

storybook

storybookでcomponentsの動作確認や、chromaticを用いてUI Testsなどを行います。

モック

storybookを使用する際にapiのmockが必要となってきます。これらはmswによって行います。

About

reactのmaterial uiパッケージを用いた際のテンプレート


Languages

Language:JavaScript 53.9%Language:TypeScript 43.3%Language:HTML 2.4%Language:Shell 0.4%