我正在制作一个大型组件,它将采用一个大型标准化对象并显示它。我将在主要分布式组件中包含许多子组件,并且我不想通过在链中一直输入道具来使其变得难看......
const User = ({ user }) => {
return (
<BasicInfo
name={user.basic.name}
tagline={user.basic.tagline}
email={user.basic.email}
...more props
>
<OtherInfo
infoprops={info}
...long list of props
>
)
}
它最终将成为一个很长的道具列表,可能会达到3或4级深度,我真的不想跟踪手动传递的内容...
我习惯使用redux,所以我可以做connect()
这样的事情,但是我可以在这里使用带有分布式组件的redux吗?将我的一个组件的状态与最终用户redux分开(如果他们甚至使用redux)?
这是明智的吗?也许有比使用redux更好的方法?谢谢
答案 0 :(得分:1)
我不认为使用redux使组件可重用是一个好主意,因为redux基于整个应用程序的单个商店,因此,如果您创建商店,应用程序将无法创建它自己的。
考虑到这一点,我认为你可以使用Singleton模式创建你的自定义商店(正如你通常用android做的那样),而不会强迫你的可能用户将redux添加到他们的项目中只是为了使用你的组件。
在不了解您的组件层次结构或行为的情况下,我无法为您提供更多指导。