Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 什么';s是存储域数据的合适的reducer体系结构_Javascript_Reactjs_Redux_Architecture - Fatal编程技术网

Javascript 什么';s是存储域数据的合适的reducer体系结构

Javascript 什么';s是存储域数据的合适的reducer体系结构,javascript,reactjs,redux,architecture,Javascript,Reactjs,Redux,Architecture,我有一些领域数据,例如,描述课程的数据 我们需要考虑的是: 分页和筛选是在服务器端实现的 有不同类型的课程(您的课程、公共课程、非公开课程等) 当然有不同的描述深度(一些一般描述,详细描述) 大约有五个不同的页面,使用相同的域数据(课程) 主页:公共课程列表/概述 包含所有课程列表的页面:公共课程列表/详细说明 您的个人资料页面:课程列表/一般说明 当前课程页面:当前课程列表/详细说明 已完成课程页面:已完成课程列表/详细说明 您的成功:已完成课程列表/详细描述/无页码 我决定使用每页缩减器体系

我有一些领域数据,例如,描述课程的数据

我们需要考虑的是:

  • 分页和筛选是在服务器端实现的

  • 有不同类型的课程(您的课程、公共课程、非公开课程等)

  • 当然有不同的描述深度(一些一般描述,详细描述)

  • 大约有五个不同的页面,使用相同的域数据(课程)

  • 主页:公共课程列表/概述

  • 包含所有课程列表的页面:公共课程列表/详细说明

  • 您的个人资料页面:课程列表/一般说明

  • 当前课程页面:当前课程列表/详细说明

  • 已完成课程页面:已完成课程列表/详细说明

  • 您的成功:已完成课程列表/详细描述/无页码

  • 我决定使用每页缩减器体系结构:

    {
        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>
                        },
                        ...
                    ]
                }
            },  
        },
    }
    
    {
    主要内容:{
    课程:{
    筛选器:{…},
    分页:{…},
    数据:[
    {
    },
    ...
    ]
    }
    },
    课程表:{
    课程:{
    筛选器:{…},
    分页:{…},
    数据:[
    {
    },
    ...
    ]
    }
    },
    简介:{
    主要内容:{
    课程:{
    筛选器:{…},
    分页:{…},
    数据:[
    {
    },
    ...
    ]
    }
    },
    当前:{
    课程:{
    筛选器:{…},
    分页:{…},
    数据:[
    {
    },
    ...
    ]
    }
    },
    已完成:{
    课程:{
    筛选器:{…},
    分页:{…},
    数据:[
    {
    },
    ...
    ]
    },
    }
    成功:{
    课程:{
    分页:{…},
    数据:[
    {
    },
    ...
    ]
    }
    },  
    },
    }
    

    但是我的同事说每页缩减器架构很难看,我不应该使用它,特别是因为这是一个好主意。

    我建议您尽可能保持状态平坦,并使用


    重新选择对服务器端筛选和搜索有何帮助?