models
Posted ty-smile
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了models相关的知识,希望对你有一定的参考价值。
一. 参考网站
redux: http://cn.redux.js.org/docs/introduction/CoreConcepts.html
dva: https://github.com/dvajs/dva/blob/master/docs/Concepts_zh-CN.md
connect: http://taobaofed.org/blog/2016/08/18/react-redux-connect/
二. 概念
1.所有的state都以一个对象树的形式储存在store中。
2.唯一改变state的方法是触发action(一个描述发生什么的对象)。
3.为了描述action如何改变state树,需要编写reducers(一个接收state和action,并返回新的state的函数)。
reducers: {
changeLoginStatus(state, { payload }) {
return {
...state,
status: payload.status,
type: payload.type,
submitting: false,
};
},
}
4.通过store.dispatch()将action传到store。(用于页面上交互时,事件里面)
this.props.dispatch({
type: ‘login/login‘,
payload: {}, // 需要传递的信息
})
5. action 是改变 State 的唯一途径,但是它只描述了一个行为,而 dipatch 可以看作是触发这个行为的方式,而 Reducer 则是描述如何改变数据的。
6.connect做了两件事,一是把组件里的属性(粮食)送到罐子里去,二是把组件们需要干什么事情提前和罐子外面的redux约定好。
三. models里包含下面这几部分
1.effects
effects: {
*login({ payload }, { call, put }) {
yield put({
type: ‘changeSubmitting‘,
payload: true,
});
const response = yield call (fakeAccountLogin, payload);
yield put({
type: ‘changeLoginStatus‘,
payload: response,
});
// Login successfully
if (response.status === ‘ok‘) {
console.log(routerRedux);
yield put(routerRedux.push(‘/‘));
}
},
};
以上是关于models的主要内容,如果未能解决你的问题,请参考以下文章