2016-11-23 69 views
0

我的网站有3页,例如www.example.com.au/invoiceswww.example.com.au/customerswww.example.com.au/suppliers反应与Redux,如何设计我的状态

在这种情况下,如何组织全局的Redux状态,我的意思是结构。 应该看起来像下面一样吗?

state = { 
    invoices: { 
     //invoices related data 
    }, 
    customers: { 
     //customers related data 
    }, 
    suppliers: { 
     //suppliers related data 
    } 
} 
+0

通过Redux状态您的意思是Redux减速器,它会生成一个存储状态,对不对?如果是...那么...是的...这是一种方法... –

+0

你的意思是说商店正确吗?因为状态通常指的是单个组件的状态。对于答案,它取决于你的对象内部会发生什么,但这应该是一个好的开始 – Sam

回答

1
state = { 
    invoices: { 
     //invoices related data 
    }, 
    customers: { 
     //customers related data 
    }, 
    suppliers: { 
     //suppliers related data 
    } 
} 

这看起来不错。

如果你是你不会被访问state.suppliersstate.customersinvoices页,如果,那么你就不需要combineReducers他们都在一起。

您可以延迟加载 reducer(动态并使用store.replaceReducer将它们注入存储区)。这样可以节省一些字节;)

一些提示:从视图(组件)和减速器

  • 单独的业务逻辑。
  • 识别核心减速器(在整个应用程序中需要的那些)和其他。只能使用核心减速器创建初始商店。
  • 将减速器和动作创建器拆分为不同的文件,并根据需要延迟减载器
1

它是由你如何存储。但更方便的方法是,为每个文件分别存储文件并将它们合并为一个存储区。

即你的文件夹结构看起来有些东西就是这样,

reducers/ 
    |---- index.js 
    |---- customers.js 
    |---- invoices.js 
    |---- suppliers.js 

里面每个customers.jsinvoices.jssuppliers.js,写自己的减速在他们每个人的并将它们合并到一个单一的大店在index.js文件中使用combineReducers()方法从redux


基本上流程是,

  • 写入单独的小 - 小缩小器。
  • 将所有缩减器导入一个文件(index.js)。
  • 使用combineReducers()将它们组合成一个大型减速机并将其导出到商店。

希望它有帮助! :)