이챙의 개발 log
[styled components] class를 추가해서 style을 변경하고 싶을때 props 이용하기(addClass)
﹒2021. 5. 31.
styled components를 이번에 배워서 프로젝트를 만드는 도중
class가 바뀔때 style을 변경하는 것을 단순히 style을 추가하면 되는줄 알았는데
props를 이용해서 할수 있다는 것을 알게되었다.
//components
<aside className={loginOn ? "is--open" : null}>
안녕하세요.
</aside>
//style
& aside{
position:fixed;
right:0;
top:0;
z-index:9;
width:50vw;
height:100%;
padding:2rem;
background:#fff;
transform:translateX(100%);
transition:all .5s ease;
box-sizing:border-box;
&.is--open{
transform:translateX(0);
}
loginOn state가 바뀌면 클래스 is--open이 추가되고 그에 따른 클래스 style을 만들어 주었었다.
그런데
styled components 검색해보다가 위에 방법처럼 하지말고 props로 이용해서 하라는 글을봐서
뭔소리인가.. props가 style에도 나온다고..?
생각하며 찾아봤다..
찾은결과 코드를 바꾸었다.
//conponents
<Aside toggle={loginOn}>
안녕하세요
</Aside>
//style
export const Aside = styled.aside`
position:fixed;
right:0;
top:0;
z-index:9;
width:50vw;
height:100%;
padding:2rem;
background:#fff;
transform:${props=>(props.toggle ? 'translateX(0)': 'translateX(100%)')};
transition:all .5s ease;
box-sizing:border-box;
`
Aside로 스타일컴포넌트 만들어주고 toggle props를 만들어서 loginOn state 값이 바뀜에 따라
style이 바뀌도록 하였다
저렇게 바뀔수 있다니.. 더 많은 설정 방법이 있는거 같아 프로젝트 만들면서 또 찾앙봐야겠다!
'react' 카테고리의 다른 글
useTransition으로 성능 개선하기 (0) | 2024.02.28 |
---|---|
react+webpack+tailwindcss 설치하기! (0) | 2022.09.19 |
React hooks를 class components 대신 사용 해야 하는 이유는 뭘까? (0) | 2021.08.27 |
useRef props 전달할때 null 값 문제를 forwardRef를 사용하여 해결하기 (0) | 2021.08.12 |
React useEffect 이해해서 사용하기 (0) | 2021.05.19 |
이챙(leechaeng)
프론트엔드 개발도 하고 뛰기도 하고