2024.03.06(수)
carousel(element들을 가로로 슬라이드시켜 여러 개를 표시하는 컴포넌트) component
npm install react-slick --save
npm install slick-carousel --save
npm install @types/react-slick --save-dev
Slider
component importimport "slick-carousel/slick/slick.css";
import "slick-carousel/slick/slick-theme.css";
import React from "react";
import Slider from "react-slick";
Slider
component에 배열 구조 분해를 통해 props로 전달 & children으로 slide 요소 전달const settings = {
dots: true,
infinite: true,
speed: 500,
slidesToShow: 1,
slidesToScroll: 1,
};
return (
<Slider {...settings}>
<div>1</div>
<div>2</div>
<div>3</div>
</Slider>
);
BookItem
component의 style을 override해서 재사용(currIndex * (-100))%
만큼 translateX()
일반적인 모바일 최적화 사이트에는 다음과 같은 태그 사용 (public/index.html
에서 사용 중)
<meta name="viewport" content="width=device-width, initial-scale=1" />
content에 다양한 속성 설정 가능
width(height) = device-width(height)
: viewport의 크기를 기기의 화면 width(height) 크기로 설정initial-scale
: 페이지가 처음 나타날 때 초기 zoom level 값 (default 1
, 최소 0.1
, 최대 10
)user-scalable
: 사용자가 확대/축소 기능을 사용 가능한지 여부 (default 1
, 사용 가능한 값: 0
, 1
, no
, yes
)%
단위 & max-width
속성 사용@media
window.matchMedia(mediaQueryString)
.matches
→ boolean 반환if (window.matchMedia("(min-width: 400px)").matches) {
/* 뷰포트 너비가 400 픽셀 이상 */
} else {
/* 뷰포트 너비가 400 픽셀 미만 */
}
input
태그에 inputMode
속성 넣기!