CDDλ Component Driven Developmentλ₯Ό μλ―Ένλ€.
μ¦, μ»΄ν¬λνΈ λ¨μμ κ°λ°μ΄λΌλ μλ―Έμ΄λ€.
μ»΄ν¬λνΈ νλλ μμ κΈ°λ₯μ ꡬνν λ¨μμ ν΄λΉλλλ°,
μ΄ μ»΄ν¬λνΈλ€μ 쑰립ν΄μ νλμ κ²°κ³Όλ¬Όμ λμΆνλ κ²μ΄λ€.
μμ λ¨μμμ μ μ°¨ νμ₯νλ€λ μ μμ μν₯μ κ°λ°λ°©λ²
μ ν΄λΉνλ€.
ν° κ·λͺ¨μ νλ‘μ νΈλ€μ΄ μ¦κ°ν¨μ λ°λΌμ CDD κ°λ°μ νμμ±μ΄ μ μ°¨ μ¦κ°νμλ€. 리μ‘νΈμ λ±μ₯μΌλ‘ μ»΄ν¬λνΈ λ¨μμ κ°λ° μ체λ μννκ² μ§νλλλ° λ°ν΄, CSSμμλ λ§λ ν μ»΄ν¬λνΈ λ¨μλ‘μ κ°λ° λ°©λ²μ΄ μ‘΄μ¬νμ§ μμλ€.
SASS
λ± CSSμ μ μ²λ¦¬κΈ°μ λ±μ₯μΌλ‘, CSSλ₯Ό ꡬ쑰ννμ¬ μμ±νλ κ²μ΄ μ¬μμ§κ² λμλ€. νμ§λ§ μ΄λ μλ§μ νμΌμ κ³μΈ΅μ μΌλ‘ λ§λ€μ΄ λ΄λ λ°©μμΌλ‘, μ΄λ§μ΄λ§ν μ©λμ κ°μ§ νμΌμ μμ±νμλ€.
μ΄λ¬ν CSS μ μ²λ¦¬κΈ°μ λ¬Έμ λ₯Ό 보μνκΈ° μν΄ BEM, OOCSS, SMACSS κ°μ CSS λ°©λ²λ‘ μ΄ λλλμλ€.
μλλ BEMμ μμμ΄λ€.
λΈλμμ - μ‘°κ° - μμ±
μ λ°λΌμ μ νμ μλͺ
μ νλ λ°©λ²μ΄λ€.
μ΄λ¬ν κΈ΄ ν΄λμ€λͺ
μ μ»΄ν¬λνΈ μ¬μ¬μ©μ λ°λ‘ μ»΄ν¬λνΈλ₯Ό νμ₯μ ν΄μΌνλ λΆνΈν¨μ΄ μμκ³ , λ§ν¬μ
μ΄ λΆνμνκ² μ»€μ§λ€λ λ¨μ μ΄ μμλ€.
κ°κ°μ μ₯λ¨μ μ΄ μμΌλ κ²°κ΅ μΈ λ°©λ²λ‘ λͺ¨λ κ°μ μ§ν₯μ μ κ°μ§κ³ μλλ° λ°©λ²λ‘ μ κ³΅ν΅ μ§ν₯μ μ λ€μκ³Ό κ°λ€.
νμ§λ§ CDD λ°©λ²λ‘ μ λ¨μ μ μΊ‘μνκ° λΆκ°λ₯νλ€λ κ²μ΄μλ€.
μΊ‘μνλ μ ν리μΌμ΄μ
μΌλ‘ κ°λ° λ°©λ²μ΄ μ§νν¨μ λ°λΌμ μ μ°¨ λλμ± μ€μνκ² λμλ€.
CSS λ°©λ²λ‘ μ λ¬Έμ μ μΈ μΊ‘μνλ₯Ό ν΄κ²°ν΄μ£Όλ Styled Component in JSκ° λ±μ₯νκ² λμλ€.
Styled Componentλ λΌμ΄λΈλ¬λ¦¬λ‘ 리μ‘νΈ
μμ μ¬μ© κ°λ₯νλ©°, CSSλ₯Ό μ»΄ν¬λνΈν μμΌμ£Όλ λꡬμ΄λ€.
CSS λν JS νμΌ λ΄μμ μμ± κ°λ₯νλ―λ‘, JS νμΌκ³Ό ν¨κ» μ»΄ν¬λνΈ κ°λ°μ΄ κ°λ₯νλ€.
$ npm install --save styled-components
import styled from "styled-components"
const μ»΄ν¬λνΈ μ΄λ¦ = styled.νκ·Έλͺ
`
CSSμμ± : CSSμμ± κ°;
`;
const redButton = styled.button`
color : red,
backgroundColor : white;
`;
const μλ‘μ΄ μ»΄ν¬λνΈλͺ
= styled.(μ¬νμ©ν μ»΄ν¬λνΈλͺ
)`
μΆκ°ν CSSμμ± : μΆκ°ν CSSμμ± κ°;
`;
const bigRedButton = styled.(redButton)`
width : 100px;
`;
createGlobalStyle
μ μν¬νΈ ν, <GlobalStyle />
μ μ΅μλ¨ μ»΄ν¬λνΈμ μ¬μ©νλ€. import { createGlobalStyle } from "styled-components";
const GlobalStyle = createGlobalStyle`
button {
padding : 5px;
margin : 2px;
border-radius : 5px;
}
`
function App() {
return (
<>
<GlobalStyle />
<Button>μ μ μ€νμΌ μ μ©νκΈ°</Button>
</>
);
}