티스토리 뷰
useMediaQuery 이용
- 여러 파일에서 사용해야하기 때문에 글로벌하게 사용할 수 있도록 따로 파일을 만들었다
- 다른 파일에서 컴포넌트처럼 사용하면 된다
- childeren에 의해 컴포넌트 내에 있는 코드들을 return한다
//mediaQuery.js
import { useMediaQuery } from "react-responsive";
const Mobile = ({ children }) => {
const isMobile = useMediaQuery({ maxWidth: 1024 })
return <>{ isMobile && children }</>
}
const Pc = ({ children }) => {
const isPc = useMediaQuery({ minWidth: 1025 })
return <>{ isPc && children }</>
}
export { Mobile, Pc };
적용하기
function Component() {
return (
<div>
<Pc>
<div>Pc에서 보여줄 내용</div>
</Pc>
<Mobile>
<div>모바일에서 보여줄 내용</div>
</Mobile>
</div>
);
}
export default Component;
CSS 파일에서 작성할 때
/* Pc */
@media (min-width:1025px) {
.button {
width: 360px;
}
}
/* Mobile */
@media (max-width:1024px) {
.button {
width: 296px;
}
}
'라이브러리, 프레임워크 > React' 카테고리의 다른 글
[React + NestJS] 카카오 로그인 + JWT 구현 코드 예시, 에러 뜰 경우 (0) | 2023.03.12 |
---|---|
[React] 컴포넌트 여러 개를 조건에 맞게 보여주기 (0) | 2023.01.12 |
[React] Boolean state if문 없이 toggle 구현 예시 (0) | 2023.01.12 |
[React] 모달창 띄운 상태에서 스크롤 막는 코드 예시 (0) | 2023.01.10 |
[React] 여러 개 이미지를 한 번에 import하기 (0) | 2023.01.08 |
댓글