加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 16:41:14 所属栏目:MsSql教程 来源:网络整理
导读:从讨论 here看来,Redux reducer的状态似乎应该保留在数据库中. 在这种情况下,用户认证的工作原理如何? 不会创建一个新的状态对象来替代数据库中的每个用户(及其应用程序状态)创建和编辑的先前状态? 在前端使用所有这些数据并不断更新数据库中的状态是否有效
从讨论 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-thunk或redux-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));
      });
  };
}

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读