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

IT技术 javascript reactjs browser onbeforeunload
2021-05-18 06:14:48

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

componentDidMount() {
  this.beforeUnloadListener();
}


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

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

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