Так а все же. Почему бы не взять обычный обьект как алтеративу (состояние хранить в обьекте, а изменять с помощью методов). В чем преймущество экшинов. Почему не делать как-то так
let store = {
someList: {
addItem(item){
// ...
}
// ...
}
// ...
};
store.someList.addItem('someItem');