끄적끄적 코딩
article thumbnail
Published 2021. 1. 8. 17:55
[React] beforeunload React
// usePreventLeave.js

const usePreventLeave = () => {
  const listener = (event) => {
    event.preventDefault();
    event.returnValue = "";
  };
  const enablePrevent = () => window.addEventListener("beforeunload", listener);
  const disablePrevent = () =>
    window.removeEventListener("beforeunload", listener);
  return { enablePrevent, disablePrevent };
};

export default usePreventLeave;
// index.js

import React from "react";
import ReactDOM from "react-dom";
import usePreventLeave from "./usePreventLeave";

const App = () => {
  const { enablePrevent, disablePrevent } = usePreventLeave();
  return (
    <div className="App">
      <button onClick={enablePrevent}>Protect</button>
      <button onClick={disablePrevent}>Unprotect</button>
    </div>
  );
};

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);

beforeunload를 적용하면 해당 페이지를 떠날 때 확인 메시지가 나오게 됩니다.

'React' 카테고리의 다른 글

[React] 동적 스타일 적용  (2) 2021.01.08
[React] mouseleave  (0) 2021.01.08
[React] window.confirm()  (0) 2021.01.08
[React] click 이벤트  (0) 2021.01.08
[React] useRef  (0) 2021.01.08

검색 태그