在哪里对数据进行规范化最合适?

时间:2019-12-07 16:36:14

标签: javascript reactjs redux

我正在将JSON API规范与json-api-normalizer package一起使用。在使用包含的关联规范化单个对象时,我遇到了一个难题。例如:我有一间餐厅,有很多菜单。唯一的障碍是,当数据标准化后,我需要检索现在嵌套的单个餐厅,并且只能通过知道它的键来检索它,在这种情况下,它是id。这导致我问我是否在错误的位置对数据进行了规范化。现在,我正在用reducer进行成功检索:

case types.FETCH_RESTAURANT_SUCCESS:
  return {
    ...state,
    data: normalize(action.payload, { camelizeKeys: false }),
    error: null, loading: false,
  };

在什么地方以及什么是对数据进行规范化的最佳方法,以使我从本质上不会被束之高阁?这是归一化状态的输出:

{
  restaurant: {
    data: {
      restaurant: {
        123: {...}
      },
      menus: {
        345: {...},
        678: {...}
      }
    }
  }
}

1 个答案:

答案 0 :(得分:0)

IMO,这仅在数据变得非常庞大时才是问题,否则您可以在易于维护以利于自己的地方对其进行标准化。但是,如果它变得很大,我认为您需要设计一些延迟加载并考虑您的业务规则。仅在需要时渲染和规范化。