๐ Component
๋ฆฌ์กํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ธํฐํ์ด์ค๋ฅผ ์ค๊ณํ ๋ ์ฌ์ฉ์๊ฐ ๋ณผ ์ ์๋ ์์๋ ์ฌ๋ฌ ๊ฐ์ง Component๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. Component์ ๊ธฐ๋ฅ์ ๋จ์ํ ํ ํ๋ฆฟ์ด ์๋ ๋ฐ์ดํฐ๊ฐ ์ฃผ์ด์ก์ ๋ ์ด์ ๋ง์ถ์ด
UI๋ฅผ ๋ง๋ค์ด ์ฃผ๊ณ
๋ผ์ดํ์ฌ์ดํด API๋ฅผ ์ด์ฉ
ํ์ฌ Component๊ฐ ํ๋ฉด์์ ๋ํ๋๊ณ ์ฌ๋ผ์ง ๋, ๋ณํ๊ฐ ์ผ์ด๋ ๋ ์ฃผ์ด์ง ์์ ๋ค์ ์ฒ๋ฆฌํ ์ ์์ผ๋ฉฐ, ์์ ๋ฉ์๋๋ฅผ ๋ง๋ค์ด ํน๋ณํ ๊ธฐ๋ฅ์ ๋ถ์ฌ์ค ์ ์์ต๋๋ค.
๐ classํ Component
- ํด๋์คํ Component์์๋ render ํจ์๊ฐ ๊ผญ ์์ด์ผ ํ๊ณ , ๊ทธ ์์์ ๋ณด์ฌ ์ฃผ์ด์ผ ํ JSX๋ฅผ ๋ฐํํด์ผ ํฉ๋๋ค.
import { Component } from 'react';
class App extands Component {
render(){
const name = 'react';
return <div className="react">{ name }</div>;
}
}
export default App;
๐ ํจ์ํ Component
- ํจ์ํ Component์ ์ฅ์
- ๋ฉ๋ชจ๋ฆฌ ์์์ ํด๋์คํ Component๋ณด๋ค ๋ ์ฌ์ฉํฉ๋๋ค.
- ํด๋์คํ Component๋ณด๋ค ์ ์ธํ๊ธฐ๊ฐ ํธํฉ๋๋ค.
- ํ๋ก์ ํธ๋ฅผ ํ์ฑํ์ฌ ๋น๋ํ ํ ๋ฐฐํฌํ ๋๋ ๊ฒฐ๊ณผ๋ฌผ์ ํ์ผ ํฌ๊ธฐ๊ฐ ๋ ์์ต๋๋ค.
- ํจ์ํ Component์ ๋จ์
- state์ ๋ผ์ดํ์ฌ์ดํด API์ ์ฌ์ฉ์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค. (๋ฆฌ์กํธ v16.8 ์ ๋ฐ์ดํธ ์ดํ Hooks๋ผ๋ ๊ธฐ๋ฅ์ด ๋์ ๋๋ฉด์ ํด๊ฒฐ๋์์ต๋๋ค.)
function App(){
const name = 'react';
return <div className="react">{ name }</div>;
}
export default App;
๐ ๋ชจ๋
- ๋ชจ๋ ๋ด๋ณด๋ด๊ธฐ(export)
Component ์ ์ผ ํ๋จ ์ฝ๋๋ฅผ ํ์ธํด ๋ณด๊ฒ ์ต๋๋ค.
export default App;
์ด ์ฝ๋๋ ๋ค๋ฅธ ํ์ผ์์ ์ด ํ์ผ์ import
ํ ๋, ์์์ ์ ์ธํ App Component๋ฅผ ๋ถ๋ฌ์ค๋๋ก ์ค์ ํฉ๋๋ค.
- ๋ชจ๋ ๋ถ๋ฌ์ค๊ธฐ(import)
๋ด๋ณด๋ธ component๋ฅผ ๋ค๋ฅธ Component์ ๋ถ๋ฌ์์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
import App from './App';
const Main = () => {
return <App />;
};
export defautl Main;