React - 检查选项卡或浏览器何时关闭,但不刷新

React - check when tab or browser is closed, but not on refresh

我想在选项卡关闭或浏览器关闭时断开所有用户的连接,到目前为止一切顺利。但是当我刷新页面时,我所有的用户也会断开连接,这不应该在刷新时发生。是否可以避免在刷新时执行此事件?我看到有些用户在用localStorage做,但我还是没看懂。

componentDidMount() {
  this.beforeUnloadListener();
}


beforeUnloadListener = () => {
  window.addEventListener("beforeunload", (ev) => {
    ev.preventDefault();
    // code to logout user
  });
};

beforeunload 的工作方式,您无法区分是页面刷新还是浏览器关闭。 beforeunload 这是一个非常混乱的事件,避免使用它。

因此,对于处理会话的情况,您应该使用会话存储。 sessionStorage 对象仅存储一个会话的数据(浏览器选项卡关闭时数据将被删除)。