簡體   English   中英

什么是用於存儲域數據的合適的reducer體系結構

[英]What's is the right reducer architecture for storing domain data

我有一些域數據,例如描述課程的數據。

我們需要考慮:

  1. 分頁和過濾是在服務器端實現的。

  2. 有不同類型的課程(您的課程,公共課程,封閉課程等)

  3. 對課程的描述有不同的深度(一些一般性的描述,詳細的描述)

大約有五個不同的頁面,它們使用相同的域數據(課程)。

  1. 主頁 :公共課程列表/概述。

  2. 包含所有課程列表的頁面 :公共課程列表/詳細說明

  3. 您的個人資料頁面 :您的課程列表/一般描述

  4. 您當前的課程頁面 :您當前課程的列表/詳細說明

  5. 您已完成的課程頁面已完成課程的列表/詳細說明

  6. 您的成功 :您完成的課程清單/詳細說明/無分頁

我決定使用每頁減速器體系結構:

{
    main: {
        courses: {
            filters: { ... },
            pagination: { ... },
            data: [
                {
                    <general>
                },
                ...
            ]
        }
    },
    listCourses: {
        courses: {
            filters: { ... },
            pagination: { ... },
            data: [
                {
                    <detailed>
                },
                ...
            ]
        }
    },
    profile: {
        main: {
            courses: {
                filters: { ... },
                pagination: { ... },
                data: [
                    {
                        <general>
                    },
                    ...
                ]
            }
        },
        current: {
            courses: {
                filters: { ... },
                pagination: { ... },
                data: [
                    {
                        <detailed>
                    },
                    ...
                ]
            }
        },
        completed: {
            courses: {
                filters: { ... },
                pagination: { ... },
                data: [
                    {
                        <detailed>
                    },
                    ...
                ]
            },
        }
        success: {
            courses: {
                pagination: { ... },
                data: [
                    {
                        <detailed>
                    },
                    ...
                ]
            }
        },  
    },
}

但是我的同事說,每頁減速器的體系結構很丑陋,我不應該使用它,特別是因為Redux的創建者並不認為這是一個好主意。

我建議您保持狀態盡可能平坦,並使用reselect

https://redux.js.org/recipes/structuringreducers/normalizingstateshape

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM