LoginSignup
3
1

More than 1 year has passed since last update.

【React】React ことはじめ (ただの学習ログ) Part2

Posted at

きっかけ

  • 前回の以下記事の続き

学習の進め方

  • 前回の本で触れられていなかったAPI呼び出しやルーティングの内容が触れられているReactハンズオンラーニング第2版で学習したいところだけメモしています。
  • 前回と同じく、記事の記載に間違いがある場合、マサカリをお願いします…

学習内容

ステート管理

  • アプリケーション全体のステート管理

    • 複数コンポーネントがステートを持つと複雑になるため、1箇所でステートを管理したい→最上位のルートコンポーネントで管理、参照は親から子コンポーネントへプロパティとして渡す、変更は子から親コンポーネントへ伝えステートを更新する
  • コンテキスト

    • 巨大アプリケーションでのステート伝達の際に、中間コンポーネントが伝達のためだけにプロパティ設定が必要となり、複雑なアプリケーションとなってしまう。→コンテキストを使用することで解決。コンテキストプロバイダへデータを渡し、コンテキストコンシューマから読み出す

データ

  • API呼び出し

    • fetch APIでHTTPリクエストを送信可能。GET, POST, PUTの場合はfetch APIのオプションとしてmethod内で指定。(axiosで実現する方法は別途確認)
  • WebStorageへの保存

    • saveJSONでlocalStorageへの保存、loadJSONでlocalStorageからの読み出す。

ルーティング

  • React Routerでルーティングを設定

遭遇したエラーとその対処

  • Module not found: You attempted to import XXX which falls outside of the project src/ directory. Relative imports outside of src/ are not supported.

    • srcより上階層の資源を読み込もうとしたら発生。src配下に資源を移動、importのパスを修正
  • Syntax error: Unterminated JSX contents

    • returnで書いていたJSXのタグの閉じ忘れが原因。
  • Manifest: Line: 1, column: 1, Syntax error Manifest.json

    • create-react-app後にpublicの内容をindex.jsを除き、削除していたことが原因。manifest.jsonを復活。
  • ESLintで’jsx-a11y/href-no-hash’ was not found

    • .eslintrc.json内でhref-no-hashをoffにする設定を追加。
3
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
3
1