结构1
reducers
index.ts //Combine all reducers
user.reducer.ts
product.reducer.ts
actions
index.ts //Combine all actions
user.action.ts
product.action.ts
effects
index.ts //Combine all effects
user.effect.ts
product.effect.ts
selector
//Combine all selectors
user.selector.ts
product.selector.ts
Run Code Online (Sandbox Code Playgroud)
要么
user
user.reducer.ts
user.action.ts
user.effect.ts
user.selector.ts
product
product.reducer.ts
product.action.ts
product.effect.ts
product.selector.ts
reducers.ts //Combine all reducers
actions.ts //Combine all actions
effects.ts //Combine all effects
selectors.ts //Combine all selectors
Run Code Online (Sandbox Code Playgroud)
Ore*_*rhi 14
我在应用程序中的几个SMART组件中使用reducer,actions或其他应用程序时,我发现了第一个适合相当小的应用程序的结构.
虽然它促进了关注点的分离,但我发现在各个目录之间跳转相当繁琐.
通常,使用,即,user.reducer.ts将涉及使用其他文件:效果,动作等.因此,第二种方法似乎更整洁.
我想建议一个可能适合的第三个结构,并且在angular2中遵循"桶"方法:
- store
- user
- index.ts
- user.actions.ts
- user.effects.ts
- user.reducer.ts
- user.reducer.spec.ts
// the store definition file - will expose reducer, actions etc..
// for connecting those to the app in the bootstrap phase
- index.ts
Run Code Online (Sandbox Code Playgroud)
使用这种结构,用户目录是一个桶,它暴露了各种逻辑组件,只需导入用户即可单独导入,即:
import { reducer as UserReducer } from '../store/user';
// or
import { UserReducer } from '../store/user'
Run Code Online (Sandbox Code Playgroud)
我正在我的开源媒体播放器应用程序中试验这些方法 - 回声播放器 - http://github.com/orizens/echoes-player
正如另一条评论所述,应用于回声播放器的这些策略和架构是在ngrx中编译的时尚指南
| 归档时间: |
|
| 查看次数: |
3539 次 |
| 最近记录: |