JavaScript์์๋ DOM์ผ๋ก HTML์ ์ ๊ทผํด์ ๋์ ์ธ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ง๋ง React์์๋ state ์ค์ฌ์ผ๋ก ์ฌ๊ณ ๋ฅผ ๋ฐ๊ฟ์ผ ํ๋ค.
import React from 'react';
class State extends React.Component {
constructor() {
super();
this.state = {
color: 'red'
};
}
render() {
return (
<div>
<h1>Class Component | State</h1>
</div>
);
}
}
export default State;
constructor()
state๋ฅผ ์ค์ ํ ๋ ์์ฑํ๋ค.์? ์ํ๊ฐ์ ์ค์ ํ ๊น?
์ปดํฌ๋ํธ ์์ ์์์์ ๊ทธ ์ํ๊ฐ์ ๋ฐ์ํด์ ๋ฐ์ดํฐ๊ฐ ๋ฐ๋ ๋๋ง๋ค ํจ์จ์ ์ผ๋ก ํ๋ฉด(UI)์ ๋ํ๋ด๊ธฐ ์ํด์์ด๋ค.
import React, { Component } from 'react';
class State extends Component {
constructor() {
super();
this.state = {
color: 'red',
};
}
handleColor = () => {
this.setState({
color: 'blue'
})
}
render() {
return (
<div>
<h1 style={{ color: this.state.color }}>Class Component | State</h1>
<button onClick={this.handleColor}>Click</button>
</div>
);
}
}
export default State;
button
์์ onClick
์ด๋ฒคํธ ๋ฐ์h1
ํ๊ทธ ๊ธ์ ์์ ๋ณ๊ฒฝReact์์๋ state๋ฅผ ํตํด์ ์์ ์ UI๋ฅผ ๊ตฌ์ฑํ๋ค.
์ ์ฐจ์ ์ด์ง ์๊ณ ํ๊ทธ ์์ ์ ์ธํ์ฌ ์๋์ ์ผ๋ก ์ ๋ฐ์ดํธ ๋ state๊ฐ ๋ฐ์๋๋ ๋ฐฉ์์ผ๋ก ํ๋ฌ๊ฐ๋ค๋ ๊ฒ์ ๋ช ์ฌํ์!
โ๏ธ ์ธ๋ผ์ธ ํ๊ทธ๋ฅผ ์ง์ํ์!
์ ์ง๋ณด์๊ฐ ์ด๋ ค์์ง๊ธฐ ๋๋ฌธ์ด๋ค.
React์์๋ ์ค๊ณ ์์ฒด๊ฐ ๋จ๋ฐฉํฅ์ด๋ค.
- ํญ์ ์->์๋, ๋ถ๋ชจ->์์์ผ๋ก ํ๋ฅธ๋ค.
- ์ด๋ ๊ฒ ๊ฐ๋ ์ด์ ๋ ์ ์ง ๋ณด์๋ฅผ ์ฝ๊ฒ ํ๊ธฐ ์ํด์์ด๋ค.
- ๋ง์ฝ์ ์์ -> ๋ถ๋ชจ, ํ์ -> ํ์ ๊ฐ์๋ ํ๋ฅผ ์ ์๋ค๋ฉด props๊ฐ ์ด๋์ ์๋์ง ์ ์๊ฐ ์์ด์ ์ถ์ ์ด ์ด๋ ค์์ง๊ธฐ ๋๋ฌธ์ด๋ค.