Maison  >  Article  >  interface Web  >  Gestion des données avec Redux : stockage du contenu et des identifiants dans des tranches

Gestion des données avec Redux : stockage du contenu et des identifiants dans des tranches

Linda Hamilton
Linda Hamiltonoriginal
2024-10-26 20:33:29994parcourir

Managing Data with Redux: Storing Content and IDs in Slices

Redux est une bibliothèque de gestion d'état populaire pour les applications JavaScript, en particulier celles construites avec des frameworks comme React. L'un des concepts fondamentaux de Redux est l'idée d'un magasin centralisé contenant l'état de votre application. Cet article explique comment gérer efficacement les données à l'aide de Redux en séparant le stockage de contenu de la gestion des listes grâce à l'utilisation de tranches.

Comprendre les tranches Redux

Dans Redux, une tranche est un ensemble de logiques et d'actions réductrices pour une fonctionnalité ou un domaine spécifique de votre application. L'utilisation de tranches permet d'organiser votre état de manière logique, ce qui facilite la gestion et la mise à l'échelle de votre application. Par exemple, vous pouvez avoir des tranches distinctes pour les données utilisateur, les publications, les commentaires et toute autre entité dans votre application.

Aperçu du concept

Dans Redux, les tranches aident à structurer efficacement votre état. Lors de la gestion d'une application de blog, vous pouvez séparer le stockage du contenu des publications des listes d'identifiants de publication. Cette séparation permet un rendu et une mise à jour efficaces des données.

Structurer votre État

Pour gérer efficacement à la fois le contenu de vos publications et les listes qui référencent ces publications, nous pouvons structurer notre état Redux en deux parties :

  1. Tranche de publications : cette tranche stockera le contenu réel de vos publications.
  2. Tranche IDs : cette tranche gérera les identifiants des publications, qui peuvent être utilisés pour diverses listes comme toutes les publications et les publications récentes.

Structure de l'État

Une structure simple pour gérer les publications :

{
  "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"]
  }
}

Dans cet exemple, la tranche de publications se compose de :

  • byId : un objet mappant les identifiants de publication à leur contenu respectif.
  • allIds : un tableau contenant les identifiants de toutes les publications, utile pour afficher une page "Tous les messages".
  • recentIds : Un tableau contenant les identifiants des publications récentes, utile pour un bloc "Messages récents".

Configuration des tranches

Créez une tranche pour gérer les publications :

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);
    }
  }
});

Accéder aux données

Récupérez les publications dans vos composants :

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]));

Avantages de cette approche

  • Séparation des préoccupations : garder le contenu et la liste des identifiants séparés permet de gérer les données plus efficacement, en particulier à mesure que l'application évolue.
  • Efficacité : en gérant les identifiants séparément, vous pouvez facilement mettre à jour ou afficher des listes sans avoir à manipuler l'ensemble de données.
  • Flexibilité : vous pouvez facilement modifier la façon dont vous affichez les données en modifiant simplement les identifiants dans vos listes sans altérer le contenu sous-jacent.

Cette approche vous permet de séparer le stockage de contenu et la gestion des identifiants, ce qui facilite la maintenance et l'accès à l'état de votre application avec Redux.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn