Javascript Redux-如何记录应用程序状态?

Javascript Redux-如何记录应用程序状态?,javascript,redux,Javascript,Redux,我正在开发React/Redux web应用程序。在项目开始时,我非常了解我的应用程序状态。但是,随着代码库的增长,我倾向于通过缩减器为应用程序状态添加越来越多的属性。这里的问题是,如果一个新人加入我的项目,他可能不清楚该州已经存在的所有属性 /* APP_STATE = { attribute1 : '', attribute2 : '', attribute3 : [], attribute4 : {

我正在开发React/Redux web应用程序。在项目开始时,我非常了解我的应用程序状态。但是,随着代码库的增长,我倾向于通过缩减器为应用程序状态添加越来越多的属性。这里的问题是,如果一个新人加入我的项目,他可能不清楚该州已经存在的所有属性

/*
    APP_STATE = {
        attribute1 : '',
        attribute2 : '',
        attribute3 : [],
        attribute4 : {
            key: ''
        },
    }
*/
现在,我只是在一个名为
state.js
的文件中使用一个注释掉的对象来描述状态中的所有属性

/*
    APP_STATE = {
        attribute1 : '',
        attribute2 : '',
        attribute3 : [],
        attribute4 : {
            key: ''
        },
    }
*/

问题是:是否有更好的方法来记录我的应用程序状态的结构,从而使其易于理解?你们使用什么方法?

一个新的开发人员应该从源头上看问题。在我们的例子中,这就是rootReducer

rootReducer的声明通常是多个单独的reducer的组合,每个reducer都有自己的状态(“slice”)。在这一点上,我不会记录每个减速器的状态,只是记录主结构

// rootReducer.js

export default combineReducers({
   feature1,   // State for feature1
   feature2,   // State for feature2
   ...
})
现在,开发人员可以深入了解每一个减速器以熟悉它。
每个reducer都有自己的模块,您可以在其中顶部声明initialState。查看文件的人可以立即了解切片的结构。这也是你记录它的机会

// feature1Reducer.js

const initialState = {
    attribute1: '',    // description of attribute1
    attribute2: [],    // description of attribute2
    ...
};

export default function reducer(state = initialState, action) {
    ...
};
所以我想我的主要指导方针是:

  • 不要强调立即介绍整个事物。分离到多个文件/模块

  • 如果希望记录对象,最好使用内联注释,而不是注释块。在我看来,它也更容易维护。然而,这是主观的