์ง๊ธ๊น์ง ์ฌ์ฉํด๋ณธ ๊ฒฐ๊ณผ ๊ฐ์ธ์ ์ผ๋ก ๋๋ผ๋ ์ ์
๋ผ๋ ๊ฒ์ด๋ค. .css ํ์ผ์ ๋ฐ๋ก ๋ถ๋ฆฌํ์ง ์์๋ ๋๋ค๋ ๊ฒ์ ๋๋งํ ๊ฒ ์๊ณ !
์์ฃผ ๊ฐ๋จํด์ ์ฒ์ ์ฌ์ฉํด๋ ์ธ ์ ์๋ค //์ฐฉ๊ฐ์ด์๋ค!
๋จผ์ import styled from 'styled-components'
ํด์ฃผ๊ณ
const ์ด๋ฆ=styled.ํ๊ทธ๋ช
`์คํ์ผ`
์ฃผ์ํ ์ ์ ๋ฐ๋์ render ๋ฉ์๋ ๋ฐ์์ ์ ์ธํด์ผํ๋ค๋ ๊ฒ ์ ๋.
styled-components๋ฅผ ์ฌ์ฉํ๋ฉด์ ํธ๋ฆฌํ๋ค๊ณ ํ๋ ๊ฐ๋ณ ์คํ์ผ๋ง ๋์ค ๋ฌธ์ ๊ฐ ์๊ฒผ๋ค.
import React, {useState} from 'react'
import styled from 'styled-components'
const TodoItem =({id, contents, is\_com, is\_del})=>{
const \[isCompleted, setIsCompleted\] = useState(is\_com===1?true:false)
return(
<div>
<TodoContents color={is_com}>
{contents}
</TodoContents>
</div>
);
}
const TodoContents=styled.div `color: ${(props) => props===1?"blue":"black"}`
export default TodoItem;
์์ ์ฝ๋์์ ๊ฐ๋ณ ์คํ์ผ๋ง์ด ์ ํ ์ ์ฉ๋์ง ์๋ ๋ค๋ ๊ฒ์ด๋ค.
๋ค๋ฅธ ๋ธ๋ก๊ทธ๋ค์์ ๋ดค์ ๋ ๋๋ถ๋ถ ์ผํญ์ฐ์ฐ์์ ์กฐ๊ฑด์ ๋ฌ์ง ์๊ณ ์ฌ์ฉํ๋๋ฐ ๊ทธ๊ฒ ์ด์ ์ธ๊ฐ?
์คํ์ผ์ปดํฌ๋ํธ์ props๊ฐ ์๋ ๊ฒฝ์ฐ์ ์๋ ๊ฒฝ์ฐ๋ง ์ฒดํฌํ๋ ๊ฑธ๊น?
์คํ์ผ์ปดํฌ๋ํธ์ props๋ฅผ ์ด์ฉํ ์ผํญ์ฐ์ฐ์์ ๋ํ ์ฒ๋ฆฌ๋ ์ฌ์ ํ ์์
์ฝ๊ฐ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ์์์ ์ฃผ๊ณ ์ถ์ ํจ๊ณผ๋ ๋ง๋ค์ด ๋๋คโ
import React, {useState} from 'react'
import styled from 'styled-components'
const TodoItem =({id, contents, is_com, is_del})=>{
const [isCompleted, setIsCompleted] = useState(is_com===1?true:false)
return(
<div>
{isCompleted?
<TodoContents completed>{contents}</TodoContents>
:
<TodoContents uncompleted>{contents}</TodoContents>
}
</div>
);
}
const TodoContents=styled.div`
color: ${props => {
return props.completed?"gray":"black"
}}
`
export default TodoItem;
isCompleted
๋ณ์ ๊ฐ์ ๋ฐ๋ฅธ ๋ ๋๋ง์ JSX+styled-components๋ฅผ ํตํด ๊ตฌํํ๋ค.
๋จผ์ isCompleted๊ฐ์ด true์ธ ๊ฒฝ์ฐ์ ์๋ ๊ฒฝ์ฐ๋ฅผ ๋๋ ์คํ์ผ์ปดํฌ๋ํธ์ props๋ฅผ ๋ฌ๋ฆฌ์ค์ ์ฒ๋ฆฌํ๋ ์์ผ๋ก ๋ง๋ค์๋ค.
๋ง์์ ์ ๋๋ ์ฝ๋๋ ์๋์ง๋ง ๋์ค์ ๋ค์ ์ฐ๊ตฌํด๋ณด๋ ๊ฑธ๋ก!โจ