웹/css
styled-components vs scss
allblack
2021. 2. 19. 11:27
반응형
잡설
예전에 작성했었던 scss 관련 글이 인기가 많이서 추가적인 내용을 써볼까 한다.
scss와 styled-components의 차의 점?
일단은 둘 다 사용 방법은 비슷하다
#box{
&>div{
}
&::before{
}
}
이렇게 태그 안에 내용을 넣을 수 있다는 점은 동일하다.
가장 큰 차의 점은 스타일 변경 과정에 차이가 있다.
만약 당신이 버튼을 불렀을 때 css를 변경해야 한다고 해보자
styled-components
import React,{useState} from 'react';
import styled from "styled-components";
function App() {
const [click,setclick]=useState(false);
return (
<div >
<Button click={click} onClick={()=>setclick(!click)}>버튼</Button>
</div>
);
}
const Button=styled.button<{click: boolean}>`
background:${({click})=> click ? "red" : "green"};
`;
export default App;
scss
import React, { useState } from "react";
import "./style/scss.scss";
function App() {
const [click, setclick] = useState(false);
return (
<div>
<button
onClick={() => setclick(!click)}
className={click ? "button" : "button click"}
>
버튼2
</button>
</div>
);
}
.button{
background:green;
&.click{
background:red;
}
}
물론 js로 document element 같은 걸로 변경을 할 수 있지만 코드 가독성에서 상당히 좋지 않을 것이다.
그리고 scss도 styled-component처럼 값을 보낼 수 있지만 scss 파일 내에 있는 변수들만으로 가능하기 때문에 styled-
component처럼 작업은 불가능할 것이다.
그럼 scss는 별로인가?
그건 아니다 styled는 코드 재활용이 상당히 힘들다 물론 extend로 상속을 시킬 수도 있지만 그렇게 할빠엔 한번 더 쓰고
만다는 생각으로 작업을 하다 보니 최적화를 하기에도 용이하다.
그리고 나처럼 scss와 styled를 같이 사용하는 멍청한 짓을 안 하길 바란다...
둘 다 나름에 장점이 있다 보니 하나를 진득이 사용하는 게 개발자 입장에서 더욱더 유용하리라 생각한다.
//위에 코드 파일
blog/reactversion/src at master · famous0811/blog (github.com)
반응형