SNSの作成(3)-reduxのバインド
reduceをプロジェクトに関連付ける場合、コード量が大きすぎるため、生産性が低下することが多い.
nextでは、reduceを簡単にバインドできるライブラリがあります.
(ちなみに、一般的な李徳思とは少し違います)
providerを最上位コンポーネントに書き込む必要はありません.
冗長性を使用して画面をビジネスロジックから分離(データインポート部分から分離)
コンポーネントの画面のみを表示し、中央リポジトリでデータを管理します.
これまで、私がやってきたプロジェクトは、コンポーネント内で非同期リクエストと画面表示の作業を行い、それらを分離する必要があります.
中央リポジトリのデータは変更する必要があります.アクションが必要です.(履歴ロール、レコード保持)Dispatchがこのアクションを実行すると、中央リポジトリが変更されます.
ここでは、Dispatch時にReduserに記録する方式によって変更する.
Reduserは,動作によって以前の状態を次の状態にする関数である.(一定のまま)
変更されたステータスは、このステータスを使用するすべての構成部品にユーザーセレクタとして適用されます.
reduceが戻るときにオブジェクトを再作成する理由も、前のレコードと次のレコードを残すためです.
新しいオブジェクトとして作成せずに直接参照関係に変換すると、変更レコードは失われます.
オブジェクトの参照関係をよく理解する必要があります.
ポート番号を3060に変更する場合は、パッケージしてください.jsonから
postがない場合はundefinedが表示されている場合はpostです.idになります.
イメージがスタイルラインの場合のinline-blockプロパティアノテーション
配列にjsxを入れる場合は、常にkeyを入れる必要があります.
nextでは、reduceを簡単にバインドできるライブラリがあります.
next-redux-wrapper
という名前のライブラリ.(ちなみに、一般的な李徳思とは少し違います)
providerを最上位コンポーネントに書き込む必要はありません.
冗長性を使用して画面をビジネスロジックから分離(データインポート部分から分離)
コンポーネントの画面のみを表示し、中央リポジトリでデータを管理します.
これまで、私がやってきたプロジェクトは、コンポーネント内で非同期リクエストと画面表示の作業を行い、それらを分離する必要があります.
李徳思について詳しく説明しましょう。
中央リポジトリのデータは変更する必要があります.アクションが必要です.(履歴ロール、レコード保持)Dispatchがこのアクションを実行すると、中央リポジトリが変更されます.
ここでは、Dispatch時にReduserに記録する方式によって変更する.
Reduserは,動作によって以前の状態を次の状態にする関数である.(一定のまま)
変更されたステータスは、このステータスを使用するすべての構成部品にユーザーセレクタとして適用されます.
ここで、なぜreducerオブジェクトは不変性を維持しますか?
{} === {} // false
const a = {};
const b = a;
a === b // true
この概念をよく運用しなければならない.変更履歴は、新しいオブジェクトを作成する場合にのみ追跡されます.reduceが戻るときにオブジェクトを再作成する理由も、前のレコードと次のレコードを残すためです.
新しいオブジェクトとして作成せずに直接参照関係に変換すると、変更レコードは失われます.
switch (action.type){
case 'CHANGE_NICKNAME':
return {
...state,
name: action.data,
}
}
case 'CHANGE_AGE':
return {
...state,
name: action.data,
}
}
}
returnにおける...state
の意味は、多くのコード量を減らすためであるが、参照関係を維持するためであることもある.(変更しない子供は参照関係を保つのでメモリを節約できます.あ、でも開発モードでしか履歴を見る必要がないのでメモリを節約できます;配置モードでは履歴を必要としないので全部捨てることができ、メモリの心配はありません.)オブジェクトの参照関係をよく理解する必要があります.
ポート番号を3060に変更する場合は、パッケージしてください.jsonから
"dev": "next -p 3060"
に変えればいいです.記憶する
const id = state.user?.id
?は、外部フィルタ演算子です.postがない場合はundefinedが表示されている場合はpostです.idになります.
state.user.id && state.user.id
これと同じ意味ですイメージがスタイルラインの場合のinline-blockプロパティアノテーション
配列にjsxを入れる場合は、常にkeyを入れる必要があります.
Reference
この問題について(SNSの作成(3)-reduxのバインド), 我々は、より多くの情報をここで見つけました https://velog.io/@sangbooom/React로-SNS-만들기-3-redux-연동하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol