Reactjs 如何使用React处理维护过程

Reactjs 如何使用React处理维护过程,reactjs,react-router,maintenance,maintenance-plan,maintenance-mode,Reactjs,React Router,Maintenance,Maintenance Plan,Maintenance Mode,以下是我的应用程序当前处理维护过程的方式: 我有一个应用程序状态的环境变量: REACT_APP_SITE_MODE=“LIVE” | “MAINTENANCE” 我正在使用react router路由应用程序: switch (process.env.REACT_APP_SITE_MODE) { case "MAINTENANCE": return ( <Switch> <Route component={Main

以下是我的应用程序当前处理维护过程的方式:

我有一个应用程序状态的环境变量:

REACT_APP_SITE_MODE=“LIVE” | “MAINTENANCE”
我正在使用
react router
路由应用程序:

switch (process.env.REACT_APP_SITE_MODE) {
  case "MAINTENANCE":
    return (
      <Switch>
        <Route component={MaintenancePage} />
      </Switch>
    );
  default:
    return (
      <Switch>
        {/* Default routes */}
      </Switch>
    );
}
开关(进程环境反应应用程序站点模式){
案例“维护”:
返回(
);
违约:
返回(
{/*默认路由*/}
);
}
这很好,但当我们切换到维护模式时,一些用户仍然可以使用默认路径访问应用程序(当后端关闭时这不好),我认为这是因为浏览器缓存或其他原因

我的问题是:

  • 如何防止用户在维护期间访问应用程序?(强制他们在特定时间清除缓存?)
  • 是否有更好的方法来处理维护过程

  • 谢谢。

    我认为您最好的选择是了解BE和FE的维护状态:

    • 对于BE,在维护期间,每当有请求到来时,它总是返回一个特定的错误代码,FE会理解
    • 对于FE,保持您的实现现在的状态,另外,在API请求中添加一个中间件以检测任何时候它有一个带有您定义的错误代码的响应,它将重定向回您的维护页面

    因此,在浏览器缓存的情况下(您的场景),即使它可以转到正常路由,下次FE发送请求时,它将被重定向到您的维护页面。

    一个选项是,无论何时您请求后端检测指示维护模式的特定错误,并在那里显示适当的错误。这是一个好主意,在这种情况下,我需要知道be在维护期间的行为,然后决定如何处理用户(重定向、重新加载或显示错误)。好的,我知道了,谢谢。