npm으로 생성된 project folder로 이동
아래의 명령어 수행
npm install react-responsive
npm install @types/react-responsive
사용하고자 하는 js에서 아래와같이 useMediaQuery import
import { useMediaQuery } from "react-responsive"
아래와같이 useMediaQuery 문법을 사용해서 ic->tablet->mobile 구분코드 작성
(여기서 useMediaQuery는 Hook이다)
function App() {
...
const isPc = useMediaQuery( {
query : "(min-width:1024px)"
});
const isTablet = useMediaQuery({
query : "(min-width:768px) and (max-width:1023px)"
});
const isMobile = useMediaQuery({
query : "(min-width:767px)"
});
...
const getDeviceType = () => {
let dev = "Device is ";
if(isPc) {
dev += "PC";
} else if(isTablet) {
dev += "Tablet";
} else if(isMobile) {
dev += "Mobile";
} else {
dev += "unknown";
}
return <p>{dev}</p>;
}
...
return (
<div>
<div>
{getDeviceType()}
{/* {isPc && <p>Pc Mode</p>}
{isTablet && <p>Tablet Mode</p>}
{isMobile && <p>Mobile Mode</p>} */}
--> getDeviceType()을 사용해도 괜찮고 isTablet && ~~ 등으로 구성한 방법을 사용해도 됨
------------- 참고 useMediaQuery 분법
const <VARNAME> = useMediaQuery ({ query: "<MIN or MAX>-width : px)" });
예시.
const isMediumRange = useMediaQuery ({ query:"(min-width:800px) and (max-width:1400px)"});
--> width 값이 800~1400px range일 때 isMediumRange가 true를 return한다.
'소프트웨어 > Web' 카테고리의 다른 글
[Blog] 소스코드 배경이미지 넣기 (0) | 2021.03.18 |
---|---|
[React] Project 생성 및 서버 구동 (0) | 2021.03.18 |
[React] 반응형 레이아웃 적용해보기 (0) | 2021.03.16 |
[Javascript] Async와 Promise에 대해 간단히 (0) | 2021.03.14 |
[React] npm run deploy시 fatal: A branch named 'gh-pages' already exists. (0) | 2021.03.14 |
[React] 영화목록 읽어와서 출력하기(json) (0) | 2021.03.13 |
[React] 공부해봅시다! (0) | 2021.03.13 |