V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xiaoming1992
V2EX  ›  程序员

深层级对象如何进行状态管理?

  •  
  •   xiaoming1992 · 2019-12-04 10:34:50 +08:00 · 1067 次点击
    这是一个创建于 1822 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我的整个页面根据一个层级比较深的对象(结构如下)渲染而成的,且在渲染"G"的时候可能还会用到"H"中的数据,整个状态管理被我搞崩了,现在的方法是类似于全局变量一样,整个数据对象处于根组件 App 中,哪个组件需要用到哪些东西,就从根对象中解构出所需的变量和所需的 setState,等到有多个组件用到了相似的数据再考虑合并。

    现在的问题是,状态管理几近于无,需要数据 /setState 的时候就设一个 React hooks,根组件页面也比较庞大(五六百行,虽然都是功能彼此隔离的小的 useEffect 堆叠而成,但页面终归还是很丑),我能怎么办呢?

    {
      "a": [
        {
          "c": [
            {
              "e": [
                {
                  "G": [
                    100, 200
                  ]
                }
              ]
            }
          ]
        }
      ],
      "b": [
        {
          "d": [
            {
              "f": [
                {
                  "H": [
                    111, 222
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
    
    2 条回复    2019-12-04 17:02:30 +08:00
    maichael
        1
    maichael  
       2019-12-04 11:40:44 +08:00   ❤️ 1
    xiaoming1992
        2
    xiaoming1992  
    OP
       2019-12-04 17:02:30 +08:00
    @maichael 我的树形关系,父子之间的联系都是有意义的,不适合变更父子关系。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4970 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 05:39 · PVG 13:39 · LAX 21:39 · JFK 00:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.