일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- chart.js
- set()
- classList
- react-router
- react
- 배열중복제거
- 대표님물리기없기
- chart responsive
- 퍼블리싱
- className
- 간식금지다!
- classList remove
- 를
- 언젠간가겠지
- 방심은금물
- 냥빨이다가온다
- classList add
- 안짤렸다
- 리엑트할수있는퍼블리셔라규
- 포트폴리오
- new set()
- ROUTER 버전6
- 접근성
- 클래스 토글
- windowwidth
- 내배위의고양이
- classList toggle
- react-router-dom
- 커스텀훅
- 2020
Archives
- Today
- Total
틈
[React] React에서 반응형 웹 대응하기 본문
Next.js-Typescript 기반에서 반응형 작업을 하고 있는데, 퍼블리셔로서 가장 어려운 것이
window.innerWidth 값을 컴포넌트마다 설정해줘야 하는 것이다.
처음에는 한땀한땀 해보고, <html> 태그에 따로 [data-width] 도 넣어봤지만,
mount 속도가 느린 화면에서는 무용지물... useEffect로 해당 값들이 받아와지지 않았다.
도대체... mount가 끝나는 지점은 어떻게 잡아야 하지!!!!!
의문이 생길 때쯤 신박한 방법을 찾았다.
리액트 반응형 웹을 위한 화면 resize 커스텀 훅
반응형 웹 구현을 위해 화면 크기가 달라질 때마다 화면의 가로나 세로 길이를 구하고자 했다.컴포넌트 내에서 window.innerWidth로 받아오면 처음 렌더링할 때의 가로 길이는 받아올 수 있었는데,
velog.io
예전부터 커스텀 훅에 대해서 존재는 알고 있었지만 사용하지 않았는데,
이번 예시를 보면서 정말 편리하다고 생각했다.
import useWindowSize from "@/components/window-size";
const Main = () => {
const windowSize = useWindowSize();
return (
{windowSize.width && windowSize.width >= 768 ? <button>PC</button> : <button>MOBILE</button>}
)
}
export default Main;
useRouter() 정도로 간단해서 여기저기 따로따로 넣어두었던 반응형 관련 코드들을 걷어내고 해당 훅으로 교체할 예정이다.
'code > React.js' 카테고리의 다른 글
[REACT] kakao지도 (0) | 2022.06.02 |
---|---|
[REACT] 외부 API 받아오기(with typescript) -declare (0) | 2022.06.01 |
[REACT] useImperativeHandle, forwardRef hook (0) | 2022.05.17 |
[REACT] react 설치 방법 변경 (0) | 2022.05.13 |
[REACT] 유용한 dependencies (0) | 2022.05.07 |
Comments