일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 공부시간측정어플
- 2156
- react
- nodejs
- 백준 #7568번 #파이썬 #동적계획법
- popup
- 동적계획법
- 백준 7579
- 자료구조
- C언어로 쉽게 풀어쓴 자료구조
- Chrome Extension
- content script
- Message Passing
- 갓생
- 캠스터디
- 크롬 확장자
- X
- supabase
- 파이썬
- 포도주시식
- 백준
- 디스코드 봇
- 크롬 익스텐션
- TypeScript
- discord.js
- 프로그래머스 #정수삼각형 #동적계획법
- background script
- webpack
- Today
- Total
히치키치
이상청 : 미디어쿼리와 useWindowWidth() 이용한 반응형 웹페이지 본문
💙 반응형 웹
1. 모바일 / PC 사용자 모두에게 이질감 없는 UI 제공
: CSS 미디어 쿼리 사용
2. 모바일 / PC 환경에서 편리한 유저 행동에 근거해 반응형 컴포넌트 렌더링
모바일 : 스크롤로 투표 목록 보기 & 드래그를 통해 찬반 투표가 편리
PC : 슬라이드를 넘기며 투표 목록 보기 & 클릭으로 찬반 투표가 편리
: useWindowWidth()와 조건부 랜더링 사용
💙 CSS 단 반응형 처리 : CSS 미디어 쿼리 사용
목표 : 기기 타입별 너비를 상수화하며 기기타입을 키 값으로 활용해서 반응형 CSS가 적용되도록 함
1. 기기별 타입별 너비 상수화
/constants/deviceInfo.js
2. 상수화된 타입별 기기 너비를 이용해 미디어 쿼리문 생성
/styles/mediaQuery.js
3. 기기 타입을 키 값으로 활용해 실제 반응형 CSS 적용
💙 컴포넌트 단 반응형 처리 : useWindowWidth와 조건부 랜더링 사용
목표 : useWindowWidth로 너비 받아오기 -> 상수화 해놓은 breakpoint를 비교 -> 랜더링할 컴포넌트 결정
1. 기기 너비를 감지하고 현재 기기 너비를 반환하는 커스텀 훅인 useWindowWidth 작성
2. 컴포넌트에서 useWidowWidth를 사용해 조건부 랜더링 진행
컴포넌트 return문에서 적용
아쉬운 점:
(1) useWindowWidth로 너비 받아오기(number) -> (2) 상수화 해놓은 breakpoint를 비교(number) -> (3) 랜더링할 컴포넌트 결정
흐름으로 진행하였는데 (2)가 컴포넌트 내부에서 이루어져 좀 덜 직관적인 것 같다..
훅 내부에서 너비에 따라 기기 타입(String)을 리턴하도록 훅을 작성하고
컴포넌트 내에서는 해당 기기타입(String)에 따라 조건부 랜더링하는게 더 좋을 것 같기더...
'이상청' 카테고리의 다른 글
이상청 : OpenGraph Protocol 사용한 SEO 처리 (단순링크, 트위터 공유) (0) | 2022.08.08 |
---|---|
이상청 : CSS Position과 Canvas, html link를 사용한 곰돌이 아바타 (0) | 2022.08.08 |
이상청 : Axios interceptor, instance 모듈화 통한 api 통신 (0) | 2022.08.08 |
이상청 : Recoil 사용한 비동기적 상태관리 & 사용자 경험 향상 (0) | 2022.08.07 |
이상청 : Github actions 이용한 AWS 배포 CI/CD (0) | 2022.08.06 |