Node.js 不确定React的语义
我是一个新的反应者,我试着去理解语义 我正在构建一个基于地图的应用程序,该站点的主要部分是地图、导航栏和一个搜索菜单,它在地图上弹出,允许您选择一个从ajax请求填充的搜索 我想到了一些问题:Node.js 不确定React的语义,node.js,reactjs,webpack,Node.js,Reactjs,Webpack,我是一个新的反应者,我试着去理解语义 我正在构建一个基于地图的应用程序,该站点的主要部分是地图、导航栏和一个搜索菜单,它在地图上弹出,允许您选择一个从ajax请求填充的搜索 我想到了一些问题: export default class App extends React.Component { toggleSearchMenu() { this.refs.searchMenu.toggleVisible(); } render() { return ( &
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>
);
}
}
我应该在哪里完成ajax请求,这些请求是否都应该包含在映射组件中?如果是,我如何传递请求的参数,如果答案是将其传递给map中的函数,那么我如何从搜索菜单组件内部调用该函数
我的应用程序目前的组织方式如下:
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>
);
}
}
导出默认类App扩展React.Component{
切换搜索菜单(){
this.refs.searchMenu.toggleVisible();
}
render(){
返回(
this.toggleSearchMenu()}>搜索
);
}
}
如您所见,我导致在我的应用程序组件中显示和隐藏菜单,而该功能在某种程度上感觉不正确?如您所知,React只负责呈现视图,但它不定义如何构造应用程序的实际逻辑。Facebook建议为此使用Flux架构。本网站和视频将让您走上正确的轨道:
基本上,您希望所有操作都进入相同的“管道”,无论它们来自何处。逻辑和某些状态保存在“存储”中(有点像模型和控制器的混合体),最后组件侦听这些存储中的更改,然后重新呈现自己。正如您所知,React只负责呈现视图,但它不定义如何构造应用程序的实际逻辑。Facebook建议为此使用Flux架构。本网站和视频将让您走上正确的轨道:
基本上,您希望所有操作都进入相同的“管道”,无论它们来自何处。逻辑和某些状态保存在“存储”中(有点像模型和控制器之间的混合体),最后组件侦听这些存储中的更改,然后重新呈现自己。感谢Johannes,这听起来对映射方面很有用。导航按钮点击时菜单的显示如何?我不想硬编码这个,我希望任何按钮能够显示任何菜单(可重复使用)。或者这是flux将要涵盖的内容?我刚才问了一个类似的问题,得到了Bill Fisher(React/flux的创建者之一)的回答:所以你想问自己:我从AJAX调用中获得的动作或数据是否会改变我的应用程序的状态?或者一个动作只是隐藏/显示一些易变的东西,比如工具提示或上下文菜单?然后它可以被认为是组件的一部分,而不是改变应用程序状态的东西。谢谢Johannes,这听起来对映射方面很有用。导航按钮点击时菜单的显示如何?我不想硬编码这个,我希望任何按钮能够显示任何菜单(可重复使用)。或者这是flux将要涵盖的内容?我刚才问了一个类似的问题,得到了Bill Fisher(React/flux的创建者之一)的回答:所以你想问自己:我从AJAX调用中获得的动作或数据是否会改变我的应用程序的状态?或者一个动作只是隐藏/显示一些易变的东西,比如工具提示或上下文菜单?然后,它可以被视为组件的一部分,而不是改变应用程序状态的东西。