[Reacte] Event setState ν¨μ
π Event setState ν¨μ μ΄ν΄νκΈ°
return (
<div className="App">
{/* Stateν νκΈ° μ μ½λ */}
{/*<Subject title="WEB" sub="word wide web!"></Subject>*/}
{/*Stateν ν λ€ μ½λ*/}
{/*<Subject title={this.state.subject.title} sub={this.state.subject.sub}></Subject>*/}
<header>
<h1><a href ="/" onClick={function (e) {
// this.state.mode = 'welcome'
this.setState({
mode:'welcome'
});
}.bind(this)}>{this.state.subject.title}</a></h1>
{this.state.subject.sub}
</header>
<Nav data = {this.state.contents}> </Nav>
<Content title={_title} desc={_desc}> </Content>
</div>
μμ κ°μ μ½λμμ μ»΄ν¬λνΈκ° μ΄λ―Έ μμ±λ μ΄νμ [this.state.mode = 'welcome']μ²λΌ State κ°μ μ§μ λ³κ²½νλ©΄ μλκ³ , ν¨μ ννλ‘ λ³κ²½ν΄μΌ νλ μ΄μ λ₯Ό μμλ³Ό κ²μ΄μμ.
constructor(props) {
// State κ°μ μ΄κΈ°ν μν€κΈ° μν¨μ΄κ³ , κ·Έ μ΄κΈ°κ°μΌλ‘ 'title="WEB" sub="word wide web!"'μ μ€μ νλ € νλ€.
super(props);
this.state = {
mode : 'read',
subject:{title:'Web', sub:'World Wide Web!'},
welcome : {title:'Welcome', desc : 'Hello, React!!!'},
contents: [
{id:1, title:'HTML', desc: 'HTML is for information'},
{id:2, title:'CSS', desc: 'CSS is for desing'},
{id:3, title:'JavaScript', desc: 'JavaScript is for interative'}
]
}
} // constructor() λ
λ¨Όμ μμμ μμ±μκ° Appμ΄λΌλ μ»΄ν¬λνΈκ° μμ±λ λ κ°μ₯ λ¨Όμ μ€νλλ
Constructorμμλ this.state = { ... }μ κ°μ΄ μ΄λ°μμΌλ‘ μ€μ νλ©΄ λλ κ²μ΄μμ.
νμ§λ§, μ΄λ―Έ μ»΄ν¬λνΈκ° μμ±μ΄ λλ λ€μ λμ μΌλ‘ State κ°μ λ°κΎΈκ³ μ ν λλ μμ κ°μ΄ νλ©΄ μλλ΅λλ€!
κ·Έκ²μ΄ λ°λ‘ [this.state.mode = 'welcome']κ³Ό κ°μ΄ νλ κ²μ΄μμ.
μ΄λ κ² νλ©΄ μλλ κ²μ΄μμ.
μ΄λ΄ λ this.setState()μ BodyλΆμ λ΄κ° μ€μ νκ³ μ νλ λ΄μ©μ κ°μ²΄ ννλ‘ μ€μΌ νλ΅λλ€!
κ·Έ μ΄μ λ 무μμΌκΉ? 리μνΈ μ
μ₯μμλ [this.state.mode = 'welcome']μ²λΌ λ°κΏλ²λ¦¬λ©΄ 리μνΈ λͺ¨λ₯΄κ² λͺ°λ λ°κΎΌκ²κ³Ό κ°μ κ²μ΄μμ.
κ·Έλμ λͺ¨λ₯΄λ κ±°λκΉ λλλ§μ ν μ μλ κ²μ΄μμ.
κ·Έλ κΈ° λλ¬Έμ State κ°μ΄ λ°λλ©΄ setStateλ₯Ό μ¨μΌνλ΅λλ€!
μ£Όλνλμ κΈμ΄ λ§μμ λμ
¨λμ? ꡬλ
κ³Ό 곡κ°! κ·Έλ¦¬κ³ , λκΈ κ·Έλ¦¬κ³ λ°©λͺ
λ‘μ μ£Όλνλμκ² λ§μ νμ΄ λ©λλ€.