在Redux应用程序中规范化api响应有什么意义?

U r*_*u s 5 json reactjs redux

可能是我对Redux很厚实而且非常新,但如果有人能给我一个简单的用例来使用像normalizr这样的东西,我会很高兴.

我不明白这里给出的例子如何处理Flux应用程序中的嵌套API响应?

我想什么我没有变就是为什么很难为加盟店消费嵌套对象.

我的应用程序是一个中型大型门户,用户可以通过与两个不同的API交谈来显示列表,创建新项目和新列表.

Nat*_*gen 5

我规范化了所有对象,但我没有使用normalizr.

我喜欢规范化,因为它使代码更具可读性.以下是一个例子.它还使参考对象和消除重复变得更加容易.例如,如果您订阅了某个elses列表中的todo项目,您必须在订阅者subscribedTodos列表中返回该待办事项的重复版本,或者您必须知道其他待办事项的用户ID和待办事项才能访问它.

回到可读性:哪些更好阅读/理解?

function rootReducer (state, action) {
  const { type, payload } = action;

  if(action.type === MODIFY_TODO) {
    return {
      ...state,
      users: {
        ...state.users,
        [payload.userID]: {
          ...state.users[userID],
          todos: {
            ...state.users[userID].todos,
            [payload.todo.todoID]: {
              ...state[userID].todos[todoID],
              ...todo
            }
          }
        }
      }
    }
  } else { return state; }
}

function rootReducer (state, action) {
  const { type, payload } = action;

  if(type === MODIFY_TODO) {
    return {
      ...state,
      todos: {
        state.todos[payload.todo.id]: {
          ...state.todos[payload.todo.id],
          ...payload.todo
        }
      }
    }
  } else { return state; }
}
Run Code Online (Sandbox Code Playgroud)