这就是我组织React / Redux项目的方式,因为这是我遵循的教程中它们的方式。这就是Flux架构吗?如果不是,您会怎么称呼它?
这是一个例子:
组件
class List extends React.Component {
componentDidMount() {
this.props.getPosts();
}
// etc...
}
const mapStateToProps = state => {
return {
posts: state.posts
};
};
const mapDispatchToProps = dispatch => {
return {
getPosts: () => dispatch(actions.getPosts())
};
};
export default connect(mapStateToProps, mapDispatchToProps)(List);
操作
const postsLoaded = posts => {
return {
type: actionTypes.POSTS_LOADED,
posts: posts
};
};
export const getPosts = () => {
return dispatch => {
axios
.get('http://api.something.com/posts', {})
.then(response => {
dispatch(postsLoaded(response.posts));
})
.catch(e => {
console.error(e);
});
};
};
减速器
const setPosts = (prevState, action) => {
return {
...prevState,
...action.posts
};
};
const reducer = (prevState = {}, action) => {
switch (action.type) {
case actionTypes.POSTS_LOADED:
return setPosts(prevState, action);
default:
return prevState;
}
};
export default reducer;
答案 0 :(得分:1)
助焊剂是一种设计模式。 Redux是实现Flux 的几个库之一。目的不是让您“使用Redux实现Flux”,而是“通过Redux使用Flux模式”。
您可以在下面的文档中找到更好的描述,但是用最简单的术语来说,Flux体系结构是基于单向数据流的,这意味着每一块都从一个地方接收数据,并将更改输出到另一个地方。这种模式的目的是消除“意大利面条式代码”,即应用程序的各个部分在许多不同的方向上传递数据,最终可能很难跟踪。
换句话说,您的组件就是下图中的“视图”。
然后重复循环。
可以在here中找到此图片和Flux的深入概述。