(1) 라이브러리 다운
yarn add react-transition-groupnpm install react-transition-group(2) import
import {CSSTransition} from 'react-transition-group';
(3) <CSSTransition>으로 감싸기
function Detail(){
return (
<div>
<CSSTransition in={true} classNames="wow" timeout={500}>
<TabContent 누른탭={누른탭} />
</CSSTransition>
</div>
)
}
(4) in, classNames, timeout 속성
function Detail(){
return (
<div>
<CSSTransition in={true} classNames="wow" timeout={500}>
<TabContent 누른탭={누른탭} />
</CSSTransition>
</div>
)
}
in은 스위치로, true일 때 애니메이션을 적용한다.classNames: 어떤 애니메이션을 적용할지 적어준다. (s가 붙는다)timeout : 작동시간(5) CSS 파일에서 애니메이션 디자인
.wow-enter {
opacity : 0
}
.wow-enter-active {
opacity : 1;
}
.작명-enter : 컴포넌트 등장 시작 시 적용할 CSS.작명-enter-active : 컴포넌트 등장중일시 적용할 CSS(6) in={false}를 true로 설정하면 애니메이션 실행
function Detail(){
let [스위치, 스위치변경] = useState(false);
return (
<div>
<Nav.Link eventKey="link-0" onClick={()=>{ 스위치변경(false); 누른탭변경(0) }}>Active</Nav.Link>
<Nav.Link eventKey="link-1" onClick={()=>{ 스위치변경(false); 누른탭변경(1) }}>Option 2</Nav.Link>
<CSSTransition in={스위치} classNames="wow" timeout={500}>
<TabContent 누른탭={누른탭} 스위치변경={스위치변경} />
</CSSTransition>
</div>
)
}
function TabContent(props){
useEffect( ()=>{
props.스위치변경(true);//탭내용 컴포넌트가 로드될 때 true
});
}