React
[React] 리액트 다시4(+xeicon, slick사용)
쿨키드
2022. 9. 20. 23:11
리액트 다시4
+xeicon, slick사용
🔸책 추천🔸
소플 리액트(책)
노드/익스프레스
📌 리액트에 xeicon 넣기
basic.css에 폰트와 xeicon 추가하기
를 추가👇
@import url('https://fonts.googleapis.com/css2?family=Merriweather:ital,wght@0,300;0,400;0,700;0,900;1,300;1,400;1,700;1,900&family=Montserrat:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Noto+Sans+KR:wght@100;300;400;500;700;900&display=swap');
@import url(https://cdn.jsdelivr.net/npm/xeicon@2.3.3/xeicon.min.css);
📌 리액트에 슬릭 넣기
https://www.npmjs.com/package/react-slick 사이트에서(검색 react slick npm)
npm :
npm install react-slick --save 👈 1번으로 터미널에 복붙
npm install slick-carousel 👈 2번으로 터미널에 복붙
그리고 리액트에서 slick을 움직이려는 페이지에
import Slider(이름은 마음대로 해도 됨) from 'react-slick'; 👈 추가
slick을 돌리기 위해서 css가 필요하기 때문에
import "slick-carousel/slick/slick.css"; 👈 추가
import { useRef } from 'react';
import MainSlider(Slider 이름을 변경하는 경우, ✋가 표시된 부분도 바꿔줘야함) from 'react-slick';
import "slick-carousel/slick/slick.css";
const MainVisual = () => {
const set = {
dots: true,
}
const Ms = useRef(null)
return (
<div>
<h3>나는 아이콘</h3>
<i className="xi-bars"></i>
👇 슬릭 부분
<✋NainSlider {...set ✔ 위에서 선언한 setting을 넣어줘야함}>
<figure>01</figure>
<figure>02</figure>
<figure>03</figure>
</✋MainSlider>
☝ 슬릭 부분
✔ 화살표 추가
<div className='arrows'>
<i className="xi-arrow-left" onClick={
() => (
// console.log(Ms.current : current를 붙이는 이유가 그냥 Ms만 했을 때, 콘솔에 current:slider라고 찍혀서 .current를 추가해줘야함)
Ms.current.slickPrev()
)
}></i>
<i className="xi-arrow-right"></i>
</div>
</div>
)
}
export default MainVisual;
const Ms = useRef(null)
<MainSlider {...set} ref={Ms}>
🔵 slick 메소드 사용하기
1. slick 에다가 이름을 붙여준다. useRef --> 소환하려면 이름.current를 달아준다.
2. 클릭하는 요소에 이벤트를 직접 달아준다.
📌 제이쿼리에서 $('.slide') =~~ 이부분이 리액트에서는
const Ms(임의 이름) = useRef(null) 로 사용
📌 화살표 함수 // 괄호 생략 가능 & return 생략 가능
( e ) => {
return e
}
(e) => (e, v) 또는 e => e도 가능
import Slider from 'react-slick';
import "slick-carousel/slick/slick.css";
const SyncSlick = () => {
return (
<>
<Slider dots={true} 이렇게 slick-dot를 추가할 수 있음>
<div>A</div>
<div>B</div>
<div>C</div>
</Slider>
</>
)
}
export default SyncSlick;