์๋ ํ์ธ์. ์ค๋์ ์ปดํฌ๋ํธ์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค.
์ปดํฌ๋ํธ๋ ์ธํฐํ์ด์ค๋ฅผ ์ค๊ณํ ๋ ์ฌ์ฉ์๊ฐ ๋ณผ ์ ์๋ ์ฌ๋ฌ๊ฐ์ง ์์๋ค์ ๋ปํฉ๋๋ค.
์ปดํฌ๋ํธ๋ props๋ฅผ ๋ฐ์์ elelement๋ฅผ ์ถ๋ ฅํ๋ ํจ์์ ๊ฐ์ต๋๋ค.
์ด๋ฌํ ์ปดํฌ๋ํธ๋ฅผ ์ ์ธํ๋ ๋ฐฉ์์ผ๋ก๋ ๋๊ฐ์ง๊ฐ ์์ต๋๋ค. ๋ฐ๋ก ํจ์ํ ์ปดํฌ๋ํธ์ ํด๋์คํ ์ปดํฌ๋ํธ!
๊ณผ์ฐ ๋์ ์ด๋ค ์ฐจ์ด๊ฐ ์๊ณ , ์ด๋ค ๊ธฐ์ค์ผ๋ก ์ฌ์ฉํ ์ปดํฌ๋ํธ๋ฅผ ์ ํ๋๊ฒ ์ข์๊น์?
์ ๋ ์ด์ ๋ํ ๋ด์ฉ์ '๋ฆฌ์กํธ๋ฅผ ๋ค๋ฃจ๋ ๊ธฐ์ ' ์ฑ ๊ณผ ๋ฆฌ์กํธ ๊ณต์๋ฌธ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ณต๋ถํ์ต๋๋ค.
(ko.reactjs.org/docs/components-and-props.html#function-and-class-components)
์ ๊ฐ ์ดํดํ ๊ฐ๋ ์ ์ฐ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์, ํ๋ฆด ์๋ ์๋ค๋ ์ !
โ์ฝ๋๋น๊ต
//ํจ์ํ ์ปดํฌ๋ํธ
import React from 'react';
import './App.css';
function App(){
const name = '๋ฆฌ์กํธ';
return <div className = "react">{name}</div>
}
const App = () => {
const name = '๋ฆฌ์กํธ';
return <div className = "react">{name}</div>
}
export default App;
//ํด๋์คํ ์ปดํฌ๋ํธ
import React, {Component} from 'react';
class App extends Component{
render(){
const name = 'react';
return <div className = "react">{name}</div>
}
}
}
export default App;
โ ํจ์ํ ์ปดํฌ๋ํธ
props(์์ฑ์ ๋ํ๋ด๋ ๋ฐ์ดํฐ) ๊ฐ์ฒด ์ธ์๋ฅผ ๋ฐ์ ํ, react element(์, props.name)๋ฅผ ๋ฐํ
โ ํจ์ํ ์ปดํฌ๋ํธ์ ํน์ง
- ์ ์ธํ๊ธฐ ํธํจ
- ๋ฉ๋ชจ๋ฆฌ ์์ ์ ๊ฒ ์ฌ์ฉ
- ํ์ผ ํฌ๊ธฐ๊ฐ ํด๋์คํ๊ณผ ๋น๊ตํด์ ๋ ์ ์(๋ณ ์ฐจ์ด ์์)
- Hooks ์ฌ์ฉ
โ ํด๋์คํ ์ปดํฌ๋ํธ์ ํน์ง
- render ํจ์ ํ์
- state์ ๋ผ์ดํ์ฌ์ดํด API ๊ธฐ๋ฅ ์ฌ์ฉ๊ฐ๋ฅ
- ์์ ๋ฉ์๋ ์ ์
โ ํด๋์คํ ์ปดํฌ๋ํธ
ํด๋์คํ ์ปดํฌ๋ํธ๋ state ์ด๊ธฐ๊ฐ์ constructor๋ฉ์๋์์ ์์ฑํด์ค์ผํ๋ค. constructor์ฌ์ฉํ ๋๋ super(props)๋ฅผ ๋ฐ๋์ ํธ์ถํด์ผํ๋ค. this.state๋ก ์กฐํํ๋ฉฐ, this.setState๋ฅผ ํตํด์ state๊ฐ์ ๋ฐ๊ฟ์ค๋ค.
constructor๋ฉ์๋๋ฅผ ์ฐ๊ณ ์ถ์ง ์์ ๋๋ ํ์ดํํจ์๋ฅผ ์จ์ ์ ๋ฉ์๋๋ฅผ ๋ง๋ค ๋๋ง๋ค constructor๋ฅผ ์์ ํด์ผํ๋ ๋ถ์์ฉ์ ๋ง์์ค๋ค.
๋ฆฌ์กํธ hook์ด ๋ํ๋๋ฉด์ ํด๋์คํ์ state๊ฐ ์ฐ์ฌ์ง์ง ์๋ ํจ์ํ ์ปดํฌ๋ํธ์ ๋จ์ ์ ๊ทน๋ณตํ์ต๋๋ค.
๋ฆฌ์กํธ ํ ์ ๋ค์์ ํฌ์คํธ์์ ์์๋ณด๊ฒ ์ต๋๋ค.
'WEB > REACT' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[React] ์คํฌ๋กค๋ฐ์ค ์ฝ๋์ ์์๋ ์ด๋ ๊ธฐ๋ฅ ๊ตฌํ (0) | 2021.01.02 |
---|---|
[React] ref (0) | 2021.01.01 |
[React] render() ํจ์ (0) | 2020.12.30 |
[React] JSX (0) | 2020.12.23 |
[React] ์ด๋ฒคํธ ํธ๋ค๋ง (0) | 2020.11.30 |