繁体   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