Styled Components/개념정리
[STYLED COMPONENTS] as 를 사용하여 element 교체하기
xowoony
2023. 3. 28. 14:41
학습일 : 2023. 03. 28
컴포넌트의 태그를 바꾸고 싶은데 스타일은 바꾸고 싶지 않을 때
즉, 예를들어
이미 만들어준 <Btn> 컴포넌트를 버튼이 아닌 a태그로 쓰고 싶은 상황이라면?
<App.js>
두개의 같은 Login이라고 적힌 버튼 컴포넌트가 있다 (Btn 이라는 이름을 가진)
나머지 하나는 css 속성은 똑같지만
버튼이 아닌
a 태그로 만들고 싶다면 (즉 태그자체를 <button> ===> <a> 로 바꾸고 싶다면)
as를 사용하면 되는데
바꾸고 싶은 컴포넌트인
두번째 <Btn> 안에
as="a" 라고 적어주면 된다
그리고 클릭시 이동시킬 주소를 적어주면 되는데
href="이동할주소" 라고 적어주면 된다.
전체 코드는 아래와 같다.
import styled from "styled-components";
const Father = styled.div`
display: flex;
`;
const Btn = styled.button`
width: 3rem;
height: 3rem;
padding: 1rem;
background-color: black;
color: white;
`;
function App() {
return (
<Father>
<Btn>Login</Btn>
<Btn as="a" href="/">Login</Btn>
</Father>
);
}
export default App;
실행결과
개발자도구를 보면 오른쪽 애는 a태그가 되었음을 확인할 수 있다.