You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将用户数据库ID存储在Redux中是否属于不良实践?

将数据库ID存储在Redux Store中的可行性分析

完全可行,这属于前端状态管理的常规操作,算不上不良实践,核心原因如下:

  • 状态同步与复用:用户登录后,收藏商家这类关联数据需要在多个页面/组件实时展示,将包含storeId的对象存在Redux中,能快速实现跨组件状态共享,避免重复发起后端请求。
  • CRUD操作高效性:直接从Redux状态中读取storeId来执行添加、删除收藏等操作,逻辑清晰且无需额外数据转换,能简化前端业务代码的编写。
  • 数据安全性可控:storeId作为数据库主键属于非敏感业务标识,只要接口层面做好权限校验(比如验证当前登录用户是否有权限操作对应商家),存储在前端Redux中不存在安全风险——毕竟这类ID在接口请求中也会传递,前端本身无法完全隐藏。

需要注意的几个细节:

  • 确保Redux状态与后端数据同步:比如删除收藏后,要及时更新Redux中的收藏数组,避免页面展示与实际后端数据不一致。
  • 兼容状态持久化:如果使用redux-persist这类持久化插件,storeId(Guid字符串)可以正常序列化,不会出现存储异常。

举个处理收藏删除的Redux reducer示例:

const initialState = {
  favoriteStores: []
};

const favoriteStoresReducer = (state = initialState, action) => {
  switch(action.type) {
    case 'DELETE_FAVORITE_STORE':
      return {
        ...state,
        favoriteStores: state.favoriteStores.filter(store => store.storeId !== action.payload.storeId)
      };
    // 其他操作类型
    default:
      return state;
  }
};

内容的提问来源于stack exchange,提问作者Adam Brittain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 22:24:28