我很反应并试图绕过语义。
我正在构建一个基于地图的应用程序,该网站的主要部分是地图,导航栏和搜索菜单,它弹出地图并允许您选择从ajax请求填充的搜索。
以下是一些可以想到的问题:
如果所有请求都包含在地图组件中,我应该在哪里完成我的ajax请求?如果是这样,我如何传递请求的参数,如果答案是将其传递给地图中的函数,那么如何从搜索菜单组件中调用该函数?
我的应用目前的组织方式如下:
export default class App extends React.Component {
toggleSearchMenu() {
this.refs.searchMenu.toggleVisible();
}
render() {
return (
<div className="pure-g">
<Nav>
<NavButton onClick={() => this.toggleSearchMenu()}>Searches</NavButton>
</Nav>
<Map lat="53.15" lng="-0.5" zoom="9" />
<SearchMenu ref="searchMenu" />
</div>
);
}
}
正如您所看到的,我已经导致显示和隐藏我的应用程序组件中的一个函数的菜单,这种感觉在某种程度上不正确?
答案 0 :(得分:3)
如您所知,React仅负责呈现视图,但它没有定义如何构建应用程序的实际逻辑。 Facebook建议使用Flux架构。此网站和视频可让您走上正确的轨道:https://facebook.github.io/react/blog/2014/05/06/flux.html
基本上,您希望所有操作都进入相同的“管道”,无论它们来自何处。逻辑和某些状态保存在“存储”中(在模型和控制器之间的混合),最后组件侦听这些存储中的更改,然后重新呈现自己。