【问题标题】:What is the best way to structure a configuration file for React?为 React 构建配置文件的最佳方法是什么?
【发布时间】:2017-05-29 07:21:19
【问题描述】:

我正在使用 React/Redux 构建一个网站框架,其中网站的配置采用 JSON 格式并加载到 Redux 存储中。该配置包含其他设置(如站点名称和 Google Analytics ID)、导航结构(如主导航、页脚导航和任何其他导航)和页面索引(最多可包含 1000 个页面)。

问题:构建此配置(特别是页面索引)以便最有效地解析它的最佳方式是什么?

有两种方法可以做到这一点:

  1. 相同对象的单个数组

    [
      {
        "id": 1,
        "url_slug": "about-us",
        "page_title": "About Us",
        "template": "about"
      },
      {
        "id": 2,
        "url_slug": "careers",
        "page_title": "Careers at Company Name",
        "template": "default"
      }
    ]
    

使用这种方法,数据很好地打包在一个可预测的结构中,但是我需要解析一次数组(每次加载页面)以找到我想通过 url_slug 引用的对象的索引。

  1. 具有唯一键的对象

    {
      "about-us": {
        "id": 1,
        "page_title": "About Us",
        "template": "about"
      },
      "careers": {
        "id": 2,
        "page_title": "Careers at Company Name",
        "template": "default"
      }
    }
    

使用此方法,我可以根据其键轻松引用我想要的对象,但对于大型站点,它会导致单个对象具有数百个键。

那么,哪个最适合性能?有区别吗?

【问题讨论】:

  • 如果每次页面加载只需要访问一个对象,为什么每次都发送“数百个”对象?只需发送您需要的。
  • 你有没有机会自己测试一下?
  • @Jordan 该对象每次访问加载一次。这个想法是应用程序可以立即对各​​种输入做出反应,而无需调用其他信息。
  • @maniak1982 不,我仍在构建框架。希望在进一步构建之前了解最佳实践。

标签: javascript json reactjs redux


【解决方案1】:

在这种情况下,使用数组代替对象并没有真正的优势。拥有“具有数百个键的单个对象”本质上没有什么比拥有具有数百个元素的单个数组更糟糕的了——也许这些键占用内存,但“数百个”键加起来最多会达到千字节。

如果对象的顺序很重要,请使用数组。如果您想要随机访问(即通过某个唯一密钥访问),请使用对象。 (如果顺序很重要并且你想要随机访问,你需要做更多的工作,但看起来情况并非如此。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    • 2023-03-25
    • 2016-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多