π μ»΄ν¬λνΈ (Component)λ?
리μ‘νΈλ νλ©΄μμ UI μμλ₯Ό ꡬλΆν λ 'μ»΄ν¬λνΈ'λΌλ λ¨μλ₯Ό μ¬μ©ν©λλ€. μ½κ² λ§νλ©΄ 리μ‘νΈμμ μ±μ μ΄λ£¨λ κ°μ₯ μμ μ‘°κ°μ΄λΌκ³ ν μ μκ³ , λ κ³ λΈλ‘μΌλ‘ μ§μ μκ² λ κ²½μ° νλμ λΈλ‘μ΄ 'μ»΄ν¬λνΈ'λΌκ³ ν μ μμ΅λλ€. μ»΄ν¬λνΈλ μλ‘μ΄ μ»΄ν¬λνΈλ₯Ό μμ±ν μ λ μκ³ , MVC μ λ·°λ₯Ό λ 립μ μΌλ‘ ꡬμ±νμ¬ μ¬μ¬μ©ν μ μμ΅λλ€. 리μ‘νΈμ μ€μν ν΅μ¬μΈ 'μ»΄ν¬λνΈ'μλ ν¨μ μ»΄ν¬λνΈ, ν΄λμ€ μ»΄ν¬λνΈ 2κ°μ§κ° μμ΅λλ€.
• μ»΄ν¬λνΈ κ΅¬μ± μμ
1) property(props)
- λΆλͺ¨ μ»΄ν¬λνΈμμ μμ μ»΄ν¬λνΈμ μ λ¬λλ λ°μ΄ν°μ λλ€. νλ‘νΌν°κ°μ μμ μ»΄ν¬λνΈμμ μμ ν μ μμ΅λλ€.
2) state
- μ»΄ν¬λνΈμ μνλ₯Ό μ μ₯νκ³ μμ κ°λ₯ν λ°μ΄ν°μ λλ€.
3) context
- λΆλͺ¨ μ»΄ν¬λνΈμμ μμ±νμ¬ λͺ¨λ μμ μ»΄ν¬λνΈμκ² μ λ¬νλ λ°μ΄ν°μ λλ€.
β‘ν¨μ(Function) μ»΄ν¬λνΈ
• ν¨μ μ»΄ν¬λνΈλ?
ν¨μν μ»΄ν¬λνΈλ λ§ κ·Έλλ‘ μλ°μ€ν¬λ¦½νΈμ "ν¨μ(function)" κΈ°λ° μ»΄ν¬λνΈμ λλ€. μλ°μ€ν¬λ¦½νΈ ν¨μλ₯Ό μ μΈνλ―μ΄ function μΌλ‘ μ»΄ν¬λνΈλ₯Ό μ μνκ³ , return λ¬Έμ JSX μ½λλ₯Ό λ°νν©λλ€.
function MyComponent() {
return (
<div>
Hello React!
</div>
);
}
λν νμ΄ν λ¬Έλ²μΌλ‘λ λνλΌ μ μμ΄μ.
const function = (param1, param2, … ) => { statements }
const MyComponent = () => {
return (
<div>
Hello React!
</div>
);
};
μ»΄ν¬λνΈλ Visual Studio Code νκ²½μμ "Reactjs Code snippet" λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νλ©΄ νΈνκ² μμ± κ°λ₯ν©λλ€. rscλ₯Ό μ λ ₯νλ©΄ ν¨μν μ»΄ν¬λνΈκ° μλμμ±λλλ°μ. MyComponent.js νμΌμμ Hello React!λ₯Ό λνλ΄λ μ½λμ λλ€.
• ν¨μ μ»΄ν¬λνΈλ₯Ό μ¬μ©νλ μ΄μ
1) Hooks
κ³Όκ±°μλ ν¨μν μ»΄ν¬λνΈκ° state, λΌμ΄νμ¬μ΄ν΄μ μ§μνμ§ μμκΈ° λλ¬Έμ ν΄λμ€ν μ»΄ν¬λνΈλ₯Ό λ§μ΄ μ¬μ©νμ§λ§, React v16 μ΄νλΆν° Hooksλ₯Ό ν΅ν state λ° LifeCycle κ΄λ¦¬κ° κ°λ₯ν΄μ Έ 리μ‘νΈμμ 곡μμ μΌλ‘ ν¨μν μ»΄ν¬λνΈ μ¬μ©μ κΆμ₯ν©λλ€. Hookμ useStateλ₯Ό μ¬μ©ν΄ state λ₯Ό κ΄λ¦¬ν μ μκ³ , useEffect λ₯Ό μ¬μ©ν΄ LifeCycle μ κ΄λ¦¬ν μ μμ΄μ.
2) μ§κ΄μ μΈ μ½λ
μλ°μ€ν¬λ¦½νΈμ ν¨μ(function) μ μΈ, νμ΄ν ν¨μλ₯Ό κ·Έλλ‘ μ¬μ©ν΄ μ»΄ν¬λνΈλ₯Ό μ¬μ© κ°λ₯νκΈ° λλ¬Έμ κ°λ°μμκ² μ§κ΄μ μ λλ€.
3) λ©λͺ¨λ¦¬ μμ ν¨μ¨
ν΄λμ€ν μ»΄ν¬λνΈμ λΉν΄ ν¨μν μ»΄ν¬λνΈκ° λΉκ΅μ λ©λͺ¨λ¦¬ μμμ μ κ² μ¬μ©ν©λλ€.
β‘ ν΄λμ€(Class) μ»΄ν¬λνΈ
• ν΄λμ€ μ»΄ν¬λνΈλ?
ν΄λμ€ μ»΄ν¬λνΈλ μλ°μ€ν¬λ¦½νΈμ "ν΄λμ€" κΈ°λ° μ»΄ν¬λνΈλ‘, classλ‘ μ μνκ³ render() ν¨μμμ jsx μ½λλ₯Ό λ°νν©λλ€.
• ν΄λμ€ μ»΄ν¬λνΈ νΉμ§
1) class ν€μλλ‘ ν΄λμ€ μ»΄ν¬λνΈ μμ±
2) React.Component μμ
Reactμ ComponentClassλ₯Ό μμλ°μ Component μμμ΄ νμν΄μ.
3) render () λ©μλ νμλ‘ μ¬μ©
ν΄λμ€ μ»΄ν¬λνΈ μμ render() λ©μλκ° κΌ νμνκ³ λ©μλ μμ JSX λ₯Ό 리ν΄ν©λλ€.
4) this ν€μλ μ¬μ©νκΈ°
state, props, refs,μ»΄ν¬λνΈ λ©μλ, μλͺ μ£ΌκΈ° λ©μλλ₯Ό μ¬μ©ν λ this λ‘ νλ‘νΌν°λ₯Ό μ°Έμ‘°νμ¬ μ¬μ©ν©λλ€.
• ν΄λμ€ μ»΄ν¬λνΈ μμ±νκΈ°
ν΄λμ€ μ»΄ν¬λνΈλ Reactμ ComponentClassλ₯Ό μμλ°μ ꡬνλκΈ° λλ¬Έμ λ°λμ {Component}λ₯Ό import νκ³ React.Component λ₯Ό μμλ°μμΌν©λλ€.
import React, { Component } from 'react';
μλλ ν΄λμ€ν μ»΄ν¬λνΈμ μ½λ ꡬ쑰μ λλ€.
Component λ₯Ό μμλ°κ³ , render() λ©μλλ₯Ό ν΅ν΄ return λ¬Έ μμ μλ JSX μ½λλ₯Ό λ°νν©λλ€.
class MyComponent2 extends Component {
render() {
return (
<div>
Hello React!
</div>
);
}
}
"Reactjs Code snippet" λΌμ΄λΈλ¬λ¦¬κ° μ€μΉλμ΄ μλ€λ©΄, rcc λ₯Ό μ λ ₯νλ©΄ ν΄λμ€ν μ»΄ν¬λνΈκ° μλμμ±λλλ°μ.
μλλ MyComponent2.js νμΌμμ Hello React!λ₯Ό λνλ΄λ μ½λμ λλ€.
'FE > React' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[React] 리μ‘νΈ λΆνΈμ€νΈλ©(react-bootstrap) μ μ©νκΈ° (0) | 2023.02.07 |
---|---|
[React] Stateλ? λ³κ²½λλ λμ μΈ κ° (0) | 2023.02.01 |
[React] Propsλ? μ»΄ν¬λνΈμ λ°μ΄ν° μ λ¬νλ νλ‘νΌν° (0) | 2023.01.29 |
[React] JSX μ μ λ° λ¬Έλ² (0) | 2023.01.24 |
[React] React κ°λ (0) | 2023.01.23 |