styled-comoponent ๋?
Javascript ํ์ผ๋ด์์ CSS๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ ๋ํ์ ์ธ CSS-in-JS๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก Reactํ๋ ์์ํฌ๋ฅผ ์ฃผ์ ๋์์ผ๋ก ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
styled-component ๋ css์ ํด๋์ค ๋ค์ ์ค๋ณต ์ฌ์ฉ ์ ์๊ธฐ๋ ๋ฒ๊ทธ ๋ฐฉ์ง์ ๊ตฌ์กฐ์ ์ผ๋ก ์ปดํฌ๋ํธ์ ์คํ์ผ์ด ๋ฌถ์ฌ์์ด ๊ด๋ฆฌ์ ์ฉ์ดํ๋ค.
styled-component ์ฌ์ฉ
import React from "react";
import styled from "styled-component";
const Container = styled.div`
color: white;
background-color: grey;
p{
font-size: 24px;
}
&:hover{
color: blue;
}
`;
function App() {
return (
<Container>
<p>Hello</p>
</Container>
)
}
export default App
๊ธฐ๋ณธ์ ์ผ๋ก ์ ์ฝ๋์ ๊ฐ์ด ์ฌ์ฉ๋๋ฉฐ, styled-component๋ props๋ฅผ ํ์ฉํ ์ ์๋ค.
styled-component์ props ์ฌ์ฉ
import React from "react";
import styled from "styled-component";
const Container = styled.div`
color: ${(props) => props.color || "white"};
background-color: grey;
p{
font-size: 24px;
}
&:hover{
color: blue;
}
`;
function App() {
return (
<Container>
<p>Hello</p>
</Container>
)
}
export default App
color์ ๋ํ props๊ฐ ์กด์ฌํ ์ ํด๋น ์์์ ์ถ๋ ฅํ๊ณ ์์ ์ ํฐ์์ผ๋ก ์ถ๋ ฅํ ์ ์๋ค.
react-query ๋?
์๋ฒ์ ๊ฐ์ ํด๋ผ์ด์ธํธ์ ๊ฐ์ ธ์ค๊ฑฐ๋, ์บ์ฑ, ๊ฐ ์ ๋ฐ์ดํธ, ์๋ฌํธ๋ค๋ง ๋ฑ ๋น๋๊ธฐ ๊ณผ์ ์ ๋์ฑ ํธํ๊ฒ ํ๋๋ฐ ์ฌ์ฉ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
react-query ๋ ์๋์ ๊ฐ์ ์ฅ์ ์ด ์๋ค.
โ ๊ฐ๊ฒฐํ fetch ๋ก์ง
๊ธฐ์กด์ ๋ฐ์ดํฐ fetch์๋ ๋ก๋ฉ ์ํ ๊ด๋ฆฌ, ํ์นญํ ๋ฐ์ดํฐ ๊ด๋ฆฌ ๋ฑ์ ์ํด ์ฌ๋ฌ ํ ์ ์ฌ์ฉํ์ผ๋, react-query๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๊ฒฐํ๊ฒ fetch ๋ก์ง์ ์์ฑํ ์ ์๋ค.
โ fetcher ํจ์๋ฅผ ๋ฐ๋ก ๋ถ๋ฆฌํ์ฌ ์ปดํฌ๋ํธ๋ก ๋ง๋ค ์ ์๋ค.
โ casing(๋ฐ์ดํฐ๋ฅผ ์บ์์ ์ ์ฅ) ์ ํ๊ธฐ ๋๋ฌธ์, ๋ฐ์ดํฐ ์์ค์ ๋ฐฉ์งํ ์ ์๋ค.
์น ๋ฌธ์์ ํค๋ ๊ฐ์ ๋ณ๊ฒฝํ ๋ ์ฌ์ฉํ๋ ๋ฆฌ์กํธ ์ปดํฌ๋ํธ์ด๋ค. React๋ฅผ ์ฌ์ฉํ ๋์๋ ์ปดํฌ๋ํธ์ head ํ๊ทธ๋ฅผ ์ง์ ์ง์ ํ๋๊ฒ ์ด๋ ค์ฐ๋ react-helmet์ ์ฌ์ฉํ๋ฉด ๋ณ๊ฒฝ์ด ์ฝ๋ค.
react-helmet ์ฌ์ฉ
import React from "react";
import { Helmet } from "react-helmet";
function App (){
return(
<div>
<Helmet>
<title>์ฌ์ดํธ ์ ๋ชฉ</title>
</Helmet>
</div>
)
}
export default App
์์ ๊ฐ์ด ์ฝ๋๋ฅผ ์ ์ฉํ๋ฉด ์น ๋ฌธ์์ title์ด ๋ณ๊ฒฝ๋์ด ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.