React 如何 管理 2 个 component 之间的关系

2016-05-03 15:42:36 +08:00
 ddmad1030

如题,刚刚开始学 react ,现在我有一个 component 叫做 block , 然后这些 block 都在 另一个叫做 board 的 component 里面, 然后这些 block 之间可以相互连接 或者不连接, 同时之后可以更改,这里我该如何 管理这个"连接"的关系?

我目前想到的做法是再创建个新的 component ( link )来管理这些连接关系 或者在 board 里来管理,但是感觉都有点奇怪,不知道对不对。。。希望有老司机来带带我 指条路 谢谢!

1844 次点击
所在节点    问与答
6 条回复
1112Samuel
2016-05-03 16:33:44 +08:00
可以把“连接关系”在 store 里面进行管理维护(相关的做法可以查一下 flux / redux )
或者像你说的在 board 中进行管理,只不过一般情况下我会觉得和数据相关的操作就不要在 view 层搞比较好。
ddmad1030
2016-05-03 17:29:34 +08:00
@1112Samuel 好的 本来只是做一个很简单的 plugin 没有考虑用 flux/redux , 看来还是去看看先哈哈~感谢~
leojoy710
2016-05-03 17:40:12 +08:00
@ddmad1030 不用 flux 也可以...其实就是 board 的一个 state, 存了 block 和其之间的连接关系...
这里用 flux 会把简单问题复杂化...没必要...
markx
2016-05-03 23:53:20 +08:00
基本上,两个 component 之间的关系,就可以存在他们共同的一个祖先 componenet 的 state 里面, 然后作为 props 传给他们来访问。
markx
2016-05-04 00:00:11 +08:00
一开始你可以把这些数据通通存在 board 里面,或者专门创建一个 component 来管理数据(这大概就是 container component 的概念)。 等到你数据很多,状态很复杂的时候, 你会发现你的 board 里面有大量的状态和方法其实只是为 children components 服务的,维护起来很麻烦, 这时候你就可以引入 flux 来解决这个问题。
ddmad1030
2016-05-04 16:04:23 +08:00
@leojoy710
@markx
感谢!现在就先存在 parent component 里好了!顺便开始看看 flux/redux!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/276016

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX