2021. 10. 2. 08:01ใFront-End ์์ ์ค/Vue.js
๐ 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๋ฅผ ์จ์ผํ๋ต๋๋ค!
์ฃผ๋ํ๋์ ๊ธ์ด ๋ง์์ ๋์
จ๋์? ๊ตฌ๋
๊ณผ ๊ณต๊ฐ! ๊ทธ๋ฆฌ๊ณ , ๋๊ธ ๊ทธ๋ฆฌ๊ณ ๋ฐฉ๋ช
๋ก์ ์ฃผ๋ํ๋์๊ฒ ๋ง์ ํ์ด ๋ฉ๋๋ค.
'Front-End ์์ ์ค > Vue.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Reacte] Array์ shouldComponentUpdate() (0) | 2021.10.04 |
---|---|
[Reacte] Component Event ๋ง๋ค๊ธฐ (0) | 2021.10.02 |
[React] ์ด๋ฒคํธ state props ๊ทธ๋ฆฌ๊ณ render ํจ์ ๊ฐ์ (0) | 2021.10.02 |
[React] State์ Props์ ์ฐจ์ด (0) | 2021.10.02 |
[React] State (0) | 2021.09.27 |