在redux中的许多小型可重用reactjs组件上使用connect()是个好主意吗
Is it a good idea to use connect() on many small reusable reactjs components in redux
假设我有一个名为<LikePanel>
的小型可重用组件,它将在不同类型的父组件(如<BlogEntry>
、<ItemEntry>
或<ReplyEntry>
)的多个页面上使用。
import {connect} from 'react-redux'
import {likeAction} from './LikeAction'
class LikePanel extends React.Component{
render() {
return <ButtonGroup className={this.props.className}>
<Button onClick={()=>this.onClickLiking()}>
<Glyphicon glyph="thumbs-up"/>{this.props.like}</Button>
</ButtonGroup>
}
onClickLiking(type){
this.props.dispatch(likeAction());
}
}
const mapStateToProps = state => {
let obj = {};
obj[LIKE] = state[LIKE];
return obj;
}
export default connect(mapStateToProps)(LikePanel)
LikePanel
:的示例用例
class BlogEntry extends React.Component{
render(){
return this.props.data.entry.map((item)=>{
return <div>
{item.article}
<LikePanel like={item.like}/>
</div>
}
}
}
class ProductEntry extends React.Component{
render(){
return this.props.data.entry.map((item)=>{
return <div>
<ProductPanel data={item}/>
<LikePanel like={item.like}/>
</div>
}
}
}
因此,如果一个网页有20个博客条目,那么页面上就会有20个连接的<LikePanel>
,并且将来可能会有额外的组件连接到redux。将connect()
与<LikePanel>
这样的小组件一起使用是一种好的做法吗?
这绝对不错。在组件层次结构中任何有意义的地方使用connect
。一种常见的模式是连接一个列表组件,并使用mapState
检索列表中数据项的ID,为每个项呈现一些<ListItem id={itemId} />
子组件,还连接每个子组件,并按ID查找其自己的数据。另请参阅https://redux.js.org/faq/react-redux#should-i-only-connect-my-top-component或can-i-connect-multiple-components-in-my-tree。
相关文章:
- 将脚本缓存到本地存储的basket.js概念仍然是一个好主意吗
- 使用每500ms运行一次的jquery函数是个好主意吗
- 在debounce函数中使用requestAnimationFrame是个好主意吗
- 通过进程使用 NodeJS 全局事件是个好主意吗?
- 将我所有的.js分组到一个文件中-好主意
- 与AMD共享库是个好主意吗
- 模块是打字的好主意吗?或者它们只是增加了复杂性
- 在Coffeescription中使用一个自调用函数来隐藏其余代码中的函数和变量,这是一个好主意吗
- 开发两个单独的节点应用程序来提供 Web 服务和使用 Web 服务以在浏览器上呈现它是一个好主意吗?
- Meteor:为集合服务器端创建筛选器,并将其存储在本地集合中.好主意
- 修改 yii.activeForm 是个好主意吗.js如果不是,另一种方法是什么
- Javascript中的异步类是一个好主意吗?
- 将 with-语句与上下文一起使用是个好主意吗?
- 在 JavaScript 中将小数字合并为一个是个好主意吗?(作为存储优化解决方案)
- 在第一次触摸启动事件时禁用所有点击事件是个好主意吗?
- 我可以定义一个函数来处理在 2 个输入标签上定义的“更改键控”事件吗?这是个好主意吗
- 使用经典继承,在 JavaScript 中使用“类级”/成员变量是一个好主意还是坏主意
- Cron Job是执行此任务的好主意吗?PHP
- 在JS模板中添加逻辑?好主意还是不行
- 在redux中的许多小型可重用reactjs组件上使用connect()是个好主意吗