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.

dev-camp LaravelとReactでTODOアプリを作成する

Last updated at Posted at 2023-04-30

実施すること

主にReactのコーディングの正解を知る目的で、LaravelとReact(TypeScript)でTODOアプリを作成していきます。

今回は以下のYoutube動画を見ながら、TODOアプリを作成します。
React + Laravel SPA開発講座

動画ごとに見出し・PRを作成し、(自分用に)概要をまとめながら進めていきます。

環境

Laravel - 10.7.1
SQLite - 3.39.5

#01~03 - アプリケーションのデモ等

使用するライブラリ

  • React Query:サーバからデータを取得する際に利用する

  • SQLite

    • 軽量なDB。サーバーとしてではなく、アプリケーションに組み込んで利用する(database.sqliteというファイル)
    • Laravelにも標準で用意されている
    • 【デメリット】ファイル形式なのでセキュリティ対策を自身でする必要がある

#04 - TODOリスト一覧APIの作成

// リソースコントローラーを使用した場合の書き方
// @see: https://www.wakuwakubank.com/posts/454-laravel-resourcefull-controller/
Route::apiResource('tasks', TaskController::class);

#5 - ユニットテストの設定と実行

sqlite関連のエラーにいくつか遭遇しました。

遭遇したエラー

vendor/bin/phpunit 実行時エラー「Your XML configuration validates against a deprecated schema」の対処法
→以下のコマンドでphpunit.xmlを更新

vendor/bin/phpunit --migrate-configuration

【Laravel】『Database does not exist.』エラーの原因と対処法
→環境変数の読み込みをなくして直接database.sqliteの完全パスを指定するように修正

#6 LaravelでCRUD APIの作成

App\Models カラムの型を指定する場合は$castsを使用する

研修で作成しているアプリのbooleanも0or1で返ってきてしまっているから、この方法でリファクタしてみるのもありかも

    protected $casts = [
        'is_done' => 'bool'
    ];

Laravel10の日本語化

以下のサイトを参考にしました。
Laravel 9.x validation.php言語ファイル
(Laravel10のlangフォルダはプロジェクトディレクトリ直下という記事も見受けられましたが、上記サイトの方法だとresourcesディレクトリ下でも日本語対応できてますね。。)

#7 LaravelにReact.jsとTypeScriptをインストール

LaravelにReact.jsとTypeScriptを自身で初インストール。
勉強なる。。

Viteを使用して開発環境構築

動画ではLaravel Mixを使用していたが、Laravelのバージョン的な問題でViteを使用。

以下の記事を参考に開発環境を構築
【Laravel9系】 Laravel Sail Viteを使ってReact TypeScriptの開発環境を用意する。

  • 研修で作成しているアプリのディレクトリ構造はjsディレクトリ下にtsファイルがあったりするので、今回ディレクトリ構造をきちんと整理できてよかった。

tsファイルの表示が可能な状態まで持ってこれました。

#10 AxiosとReactQueryでAPIからデータを取得する

ReactQuery

  • データ同期処理に活躍するライブラリ
  • 頻繁な更新、キャッシュ、サーバーとの非同期通信時処理のuseEffect, useStateを置き換えて、よりシンプルな書き方にする

以下のサイトがわかりやすい

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?