V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
ddmad1030
V2EX  ›  问与答

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

  •  
  •   ddmad1030 · 2016-05-03 15:42:36 +08:00 · 1887 次点击
    这是一个创建于 3163 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    6 条回复    2016-05-04 16:04:23 +08:00
    1112Samuel
        1
    1112Samuel  
       2016-05-03 16:33:44 +08:00   ❤️ 1
    可以把“连接关系”在 store 里面进行管理维护(相关的做法可以查一下 flux / redux )
    或者像你说的在 board 中进行管理,只不过一般情况下我会觉得和数据相关的操作就不要在 view 层搞比较好。
    ddmad1030
        2
    ddmad1030  
    OP
       2016-05-03 17:29:34 +08:00
    @1112Samuel 好的 本来只是做一个很简单的 plugin 没有考虑用 flux/redux , 看来还是去看看先哈哈~感谢~
    leojoy710
        3
    leojoy710  
       2016-05-03 17:40:12 +08:00   ❤️ 1
    @ddmad1030 不用 flux 也可以...其实就是 board 的一个 state, 存了 block 和其之间的连接关系...
    这里用 flux 会把简单问题复杂化...没必要...
    markx
        4
    markx  
       2016-05-03 23:53:20 +08:00
    基本上,两个 component 之间的关系,就可以存在他们共同的一个祖先 componenet 的 state 里面, 然后作为 props 传给他们来访问。
    markx
        5
    markx  
       2016-05-04 00:00:11 +08:00   ❤️ 1
    一开始你可以把这些数据通通存在 board 里面,或者专门创建一个 component 来管理数据(这大概就是 container component 的概念)。 等到你数据很多,状态很复杂的时候, 你会发现你的 board 里面有大量的状态和方法其实只是为 children components 服务的,维护起来很麻烦, 这时候你就可以引入 flux 来解决这个问题。
    ddmad1030
        6
    ddmad1030  
    OP
       2016-05-04 16:04:23 +08:00
    @leojoy710
    @markx
    感谢!现在就先存在 parent component 里好了!顺便开始看看 flux/redux!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1011 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 19:54 · PVG 03:54 · LAX 11:54 · JFK 14:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.