在上一篇博客Reducer 的拆分(一)http://blog.csdn.net/keji_123/article/details/79242355的基础上再进一步优化一下:
//这里传数据的时候没有必要把整个state传进去,我们用到什么传什么,改成如下代码:
const reducer = ( state, action ) => {
users:users( state.users, action),
articles: articles( state.articles, action),
comments: comments( state.comments, action)
}
//添加用户
function users( users, action){
switch(action.type) {
//添加用户
case 'ADD_USER':
return [action.data,...users];
default:
return users;
}
}
function articles(articles, action){
switch(action.type){
//添加文章
case 'ADD_ARTICLE':
return [action.data,...articles];
//删除文章
case 'EDIT_ARTICLE':
return articles.map( article=> {
if (article.id == action.data.id) {
article.title = action.data.title;
}
return article;
} )});
default:
return articles;
}
}
//添加评论
function comments( comments, action){
switch(action.type){
default:
return comments;
}
}