在angular2使用ngrx

在项目数据全局状态管理上,在react框架使用的是Redux;
Redux是为了解决应用程序状态(State)管理而提出的一种解决方案。从单项数据流方面说,redux中将整个状态都集中在一个JavaScript对象树中。而后经过数据变动也就是通知,而将组件变动动做储存在store 仓库中。等到使用
时候 使用this.store.dispacth分发react

经过下面在项目使用ngrx:redux

首先建立 store文件夹中,再建立actions reducers selectors 三个文件app

1, 在reducer  初始化state 状态,和值
        export enum ModalType {
Register = "register",
LoginByPhone = "loginByPhone",
Share = 'share',
Like = 'like',
Default = 'default'

}框架

//初始化State类型
export interface MemberState {
modalVisible: boolean;
modalType: ModalType
}ide

//初始化State的值
export const initialState: MemberState = {
modalVisible: false,
modalType: ModalType.Default
}
//注册到Reducerthis

const reducer = createReducer(
initialState,
on(SetModalVisible, (state, { modalVisible }) => ({ ...state, modalVisible })),
on(SetModalType, (state, { modalType }) => ({ ...state, modalType })),
)spa

export function memberReducer(state: MemberState, action: Action) {
return reducer(state, action);
}code

第二步:在action 建立须要变动动做文件ts
export const SetModalVisible = createAction('[member] Set modal visible', props<{ modalVisible: boolean }>());
export const SetModalType = createAction('[member] Set moddal visible', props<{ modalType: ModalType }>());对象

第三步:在selected文件建立分发文件ip

const selectMemberStates = (state: MemberState) => state;
export const getModalVisible = createReducer(selectMemberStates, (state: MemberState) => state.modalVisible);
export const getModalType = createReducer(selectMemberStates, (state: MemberState) => state.modalType)

第四步 在store文件下建立appStoreModule

@NgModule({
declarations: [],
imports: [
StoreModule.forRoot({ player: playerReducer, member: memberReducer }, {
runtimeChecks: {
strictStateImmutability: true,
strictActionImmutability: true,
strictStateSerializability: true,
strictActionSerializability: true,
}
}),
StoreDevtoolsModule.instrument({
maxAge: 20,
logOnly: environment.production
})
]
})
export class AppStoreModule { }

第五步 :在使用的模块中注册进来,或者是公共核心模块中引用;
第六步:在service.ts文件构造器初始化
constructor(private store$: Store<AppStoreModule>) {

}

相关文章
相关标签/搜索