React+TS を使用したシンプルな Jira プロジェクトを実装するためのベスト プラクティス

React+TS を使用したシンプルな Jira プロジェクトを実装するためのベスト プラクティス

トレーニングのための一連のプロジェクト
反応+ts
内容は少ないですが、フックのカプセル化、ts ジェネリックの理解、次のレベルのプロジェクト コードの使用など、退屈な内容がたくさんあります。https://gitee.com/fine509/react_jiar

レンダリング

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

これらは3つのメインページといくつかの細かい詳細です

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

注目すべき点がいくつかあります(一般的な機能についてのみ説明しており、具体的な使用方法については説明していません)

ここに画像の説明を挿入

ページのどこかにエラーがある場合にハングアップするのではなく、エラー境界処理と getDerivedStateFromError を使用してエラー コンポーネントを表示します。

useSearchParamsの使用

ここに画像の説明を挿入
ここに画像の説明を挿入

この API はここでパラメータを取得および設定できます。

react-queryの使用

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

このライブラリは、サーバー側のデータを管理するための状態管理ライブラリとしてオンラインで紹介されています。 redux に少し似ているようですが、多くのアクションとリデューサーを書く必要はありません。 非同期リクエストをサポートし、キーを使用してデータを一意に識別し、グローバル状態管理ライブラリに似た場所を持っています。これは、追加、削除、変更、チェックなどの特定のテーブルに特に適しており、楽観的更新もサポートしています。 例えば、データの追加、削除、変更、チェックを行う際に、データを送信した瞬間に元のデータを直接取得できるという考え方です。自分で記述したロジックコードを通じて、追加、削除、変更、チェックを行った後のデータを取得し、それを直接ページにレンダリングすることができます。直接更新されたように見えますが、実際には最初にレンダリングされ、その後バックグラウンドでリクエスト自体が送信されます。失敗した場合は、元のデータを取得してページに再レンダリングし、失敗を通知することもできます。 このプロジェクトを実行する際に特に気になった最後の点は、データ管理でした。

まず、フックを自分でカプセル化しました。

ここに画像の説明を挿入

私の考えでは、ページは大量のデータを取得する必要がある可能性があるため、自分で Loading を書くのは非常に面倒です。複数あるのに、なぜ loading を統一的に管理できないのでしょうか? 次に、データをオブジェクトとして設定します。それを使用するときは、データのタイプを定義するために型を渡すことができます。

ここに画像の説明を挿入

次にsendHttpを使ってデータを送信します

ここに画像の説明を挿入

2 つのパラメータを受け入れます。2 番目のパラメータは、現在のデータが配置されるデータの属性です。

使用効果は

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

こうすることで、このデータの状態を一元的に管理できるのですが、後になって、これが非常に使いにくいことに気づきました。それでまた諦めました。ネイティブで書くほうが楽です。インターフェースを直接定義するだけです。

ここに画像の説明を挿入

直接使用

ここに画像の説明を挿入

もちろん、redux を使うことも考えましたが、redux ではアクションとリデューサーを書く必要があり、これも非常に面倒です。
最近友人から、Ahooks の usequest も良いと聞いたので、次のプロジェクトで試してみようと思います。

最後に、このプロジェクトから最も学んだことは、さまざまなフックをカプセル化することです

カプセル化redux


ここに画像の説明を挿入

カプセル化リクエスト

ここに画像の説明を挿入

TSの研究もあります。

API がわからない場合は、型定義をクリックしてください。

ここに画像の説明を挿入

このようなことが分からない場合は、クリックして一つずつクリックしてください。

ここに画像の説明を挿入

この集中講義で、ジェネリック医薬品の使い方をゆっくりと理解できるようになります。

react+ts を使用したシンプルな jira プロジェクトの実装に関するこの記事はこれで終わりです。さらに関連性の高い react+ts jira プロジェクトのコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • React は recharts を使用して散布図のサンプル コードを実装します
  • Node を使用して reactSSR サーバーサイド レンダリング アーキテクチャを構築する
  • ReactのsetStateコールバック関数の詳細な説明
  • React の状態と setState の使用に関する学習ノート
  • React コンポーネントで Echarts を使用するためのサンプルコード
  • React Native は Baidu Echarts を使用してチャートを表示するサンプル コード

<<:  Linuxファイアウォールiptablesの詳細な紹介、設定方法と事例

>>:  MySQL 5.7.24 圧縮パッケージのインストールと設定方法のグラフィックチュートリアル

推薦する

Navicat を MySQL に接続するときに発生する 2059 エラーの解決方法

最近、Djangoを学習しているときにデータベースを使用する必要があったため、MySQLで使用するた...

IDEA を使用して Web プロジェクトを作成し、Tomcat に公開する方法

目次ウェブ開発1. Web開発の概要Tomcatのインストールと設定Tomcatをインストールする2...

ウェブサイトのホームページを作成するための基本原則

1. ウェブサイトのホームページのハイパーテキスト ドキュメントの構成構造は、ユーザーの注意をできる...

Vueはプルダウンとスクロールでデータを読み込む例を実装しています

目次ステップ1: インストールステップ2: 引用ステップ3: 使用Webプロジェクトでは、データを読...

VMware Workstation 14 Pro インストール Ubuntu 16.04 チュートリアル

この記事では、VMware Workstation14 ProにUbuntu 16.04をインストー...

CSSはリモコンのボタンを模倣する

注: このデモはミニプログラム環境でテストされており、他の h5 および pc Web ページにも適...

MySQLデータのエクスポートとインポートに関する知識ポイントの簡単な分析

多くの場合、ローカル データベースのデータをエクスポートしたり、他のデータベースからデータをインポー...

Linux システムで時間を取得して使用する方法

Linux システム時間には 2 種類あります。 (1)暦上の時刻。値は、指定された時刻、1970 ...

https ウェブサイトを展開し、Nginx でアドレス書き換えを構成するための詳細な手順

Nginx は、高性能な Web サイト サーバーおよびリバース プロキシ サーバーであり、IMAP...

MySQL データベース ターミナル - 一般的な操作コマンド コード

目次1. ユーザーを追加する2. ユーザー名とホストを変更する3. パスワードを変更する4. ユーザ...

JavaScript で文字列内の最長の単語を見つける 3 つの方法 (推奨)

この記事は、Free Code Camp の基本アルゴリズム スクリプト「文字列内の最長の単語を見つ...

HiveメタデータをMySQLに設定するプロセス全体

Hiveのインストールディレクトリで、confディレクトリに入り、hive-site.xmlファイル...

Vue2とVue3の兄弟コンポーネント通信バスの違いと使い方

目次vue2.x vue3.x tiny-emitterプラグインの使用Mittプラグインの使用vu...

Alibaba Cloud Nginx はドメイン名アクセス プロジェクトを実装するために https を設定します (グラフィック チュートリアル)

ステップ1: サードパーティの信頼できるSSL証明書に署名するAlibaba Cloud で直接、無...

Web 開発 js 文字列連結プレースホルダーと conlose オブジェクト API の詳細な説明

目次プレースホルダーの置き換えコンソール印刷テーブル()ログ、情報、警告、エラーグループ()、グルー...