일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- React Testing Library
- nest.js circular Dependency
- 비동기 테스트
- TodoList 테스트 코드
- nest.js forwardRef
- 리액트 테스트 코드
- 첫 코딩
- jest
- 첫코딩
- react 테스트
- React 테스트코드
- react native 무한스크롤
- javascript 테스트
- ScrollView 무한 스크롤
- mock api를 이용한 react 테스트
- react testing library 비동기 테스트 사용법
- HTML
- nest.js 순환 참조
- 리액트 테스트
- nest.js 순환 종속성
- react
- CSS
- 개발
- FlatList 무한 스크롤
- 프로젝트 배포하기
- react jest
- TDD방식으로 리액트 테스팅
- Testing-library/react
- mock api 사용법
- JavaScript
Archives
- Today
- Total
성장을 위한 기록
React 새로고침 선택적 막기 react-beforeunload 본문
React 새로고침 시 경고창 띄우기
본론으로 넘어가기 전 완벽한 내용이 아님으로 다른 자료를 더 찾아보고 활용해 보시는 걸 추천드립니다. (혹시나 보시는 분이 있을까바.... )
노션 등의 페이지를 나갈 때 변경된 사항이 저장되지 않는다는 확인 문구가 뜨는 것을 본적이 있을 것이다.
그것과 비슷하게 나도 글을 쓰는 도중에 새로고침을 하면 변경 될 수 있다는 안내 문구를 띄우고 싶었고, 그 방법으로 react-beforeunload
를 찾았다.
사용 방법
사실 이 새로고침을 막을 수 있는 방법은 다양할 것 같다. onbeforeunload
라는 이벤트도 존재하고 키보드 이벤트로도 막을 수 있을 것 같은데, 앞서 언급한 라이브러리를 이용하면 쉽게 구현할 수 있다.
라이브러리 설치
npm install react-beforeunload
yarn add react-beforeunload
코드
import { useBeforeunload } from "react-beforeunload"
...
useBeforeunload((event) => event.preventDefault())
...
상단에 import 한 후 해당 코드를 입력하면 끝이다.
이렇게 작성하면 경고창이 뜨고 선택에 따라 새로고침을 막을 수 있다 .
주의사항
- react 버전이 16.8.0 이상 버전에서 사용이 가능하다.
- 변경사항이 있어야 동작한다.
변경사항이 있다는 의미를 예로 들었을 때, 서버로부터 데이터를 get해서 다시 렌더링 하는 경우도 변경사항이며,
textarea 등 작성도 변경사항이 될 수 있다. 단, onChange로 관리를 해주어야 한다.ref
로 클릭 시 저장되는 로직에 경우 누르기 전까지 변동사항이 없기 때문에, onChange로 input 태그 등을 관리 해야 한다.
'FE (Front End) (구) > React' 카테고리의 다른 글
React, React-query 리액트 쿼리 useQuery 사용하여 get 받아오기 기초 사용 방법 (0) | 2022.06.25 |
---|---|
React(리액트) 반응형 CSS 라이브러리 react-responsive (0) | 2022.06.23 |
React에서 Link 사용하여 데이터 전송하기 ! (0) | 2022.06.14 |
React(리액트)에서 textarea 줄바꿈 표현하는 방법, splice/ map (0) | 2022.06.10 |
redux toolkit 파해쳐보기 기본 개념 정리 및 사용법 (0) | 2022.06.09 |
Comments