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

时间:2017-01-10 23:20:47

标签: javascript redux

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

现在,我只是在名为state.js的文件中使用注释掉的对象来描述该州的所有属性。

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

问题是:是否有更好的方法来记录我的应用程序状态的结构,以便它很容易理解?你们用什么方法?

1 个答案:

答案 0 :(得分:1)

新开发者应该从原点看待事物。在我们的例子中,那将是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) {
    ...
};

所以我猜我的主要指导方针是:

  1. 不要强调一次引入整个的东西。分开到多个文件/模块。

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