reactjs – Redux状态持久性与数据库

从讨论here看来,Redux reducer的状态似乎应该保留在数据库中.

在这种情况下,用户认证的工作原理如何?

不会创建一个新的状态对象来替代数据库中的每个用户(及其应用程序状态)创建和编辑的先前状态?

在前端使用所有这些数据并不断更新数据库中的状态是否有效?

编辑:我创建了一个example Redux auth project,这也恰好体现了通用的Redux,并使用Redux,Socket.io和RethinkDB实时更新.

最佳答案

From the discussion here it seems that the state of Redux reducers should be persisted in a database.

要坚持不懈的国家,这可能不是Redux的关切.它更适用于应用程序逻辑.

如果应用程序发生了某些事情,例如数据上传到服务器,显然您需要保存状态(或状态切片到服务器).

由于网络呼叫是异步的,而Redux是同步的 – 您需要引入额外的中间件,如redux-thunkredux-promise.

作为注册示例,您可能需要该操作,

export function creatingAccount() {
  return { type: 'CREATING_ACCOUNT' };
}

export function accountCreated(account) {
  return { type: 'ACCOUNT_CREATED', payload: account };
}

export function accountCreatingFailed(error) {
  return { type: 'ACCOUNT_CREATING_FAILED', payload: error };
}

export function createAccount(data, redirectParam) {
  return (dispatch) => {
    dispatch(creatingAccount());

    const url = config.apiUrl + '/auth/signup';

    fetch(url).post({ body: data })
      .then(account => {
        dispatch(accountCreated(account));
      })
      .catch(err => {
        dispatch(accountCreatingFailed(err));
      });
  };
}

状态的某些部分,例如用户对象授权后,可能会存储到本地存储并在下一次应用程序运行时重新水化.

转载注明原文:reactjs – Redux状态持久性与数据库 - 代码日志