ホームページ >ウェブフロントエンド >jsチュートリアル >Redux を使用したデータ管理: コンテンツと ID をスライスに保存する
Redux は、JavaScript アプリケーション、特に React などのフレームワークで構築されたアプリケーションの人気のある状態管理ライブラリです。 Redux の中核となる概念の 1 つは、アプリケーションの状態を保持する集中ストアという考え方です。この記事では、スライスを使用してコンテンツ ストレージをリスト管理から分離することで、Redux を使用してデータを効果的に管理する方法について説明します。
Redux では、スライスはアプリケーションの特定の機能またはドメインに対するリデューサー ロジックとアクションのコレクションです。スライスを使用すると、状態を論理的に整理できるため、アプリケーションの管理と拡張が容易になります。たとえば、アプリケーション内のユーザー データ、投稿、コメント、その他のエンティティに対して個別のスライスを作成できます。
Redux では、スライスは状態を効果的に構造化するのに役立ちます。ブログ アプリケーションを管理する場合、投稿コンテンツのストレージを投稿 ID のリストから分離できます。この分離により、データの効率的なレンダリングと更新が可能になります。
投稿のコンテンツとこれらの投稿を参照するリストの両方を効果的に管理するために、Redux の状態を 2 つの部分に構造化できます。
投稿を管理するためのシンプルな構造:
{ "posts": { "byId": { "1": { "id": "1", "title": "First Post", "content": "This is the first post." }, "2": { "id": "2", "title": "Second Post", "content": "This is the second post." } }, "allIds": ["1", "2"], "recentIds": ["2"] } }
この例では、投稿スライスは次のもので構成されます:
投稿を管理するスライスを作成します:
import { createSlice } from '@reduxjs/toolkit'; const postsSlice = createSlice({ name: 'posts', initialState: { byId: {}, allIds: [], recentIds: [] }, reducers: { addPost: (state, { payload }) => { state.byId[payload.id] = payload; state.allIds.push(payload.id); state.recentIds.push(payload.id); }, removePost: (state, { payload }) => { delete state.byId[payload]; state.allIds = state.allIds.filter(id => id !== payload); state.recentIds = state.recentIds.filter(id => id !== payload); } } });
コンポーネント内の投稿を取得します:
const allPosts = useSelector(state => state.posts.allIds.map(id => state.posts.byId[id])); const recentPosts = useSelector(state => state.posts.recentIds.map(id => state.posts.byId[id]));
このアプローチにより、コンテンツ ストレージと ID 管理を分離できるため、Redux を使用したアプリケーションの状態の維持とアクセスが容易になります。
以上がRedux を使用したデータ管理: コンテンツと ID をスライスに保存するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。