state ๐
constructor(props)๋ฅผ ํตํด์ ์ด๊ธฐํ, ๋ณ๊ฒฝ ๊ฐ๋ฅ
constructor() {} ์์์ ๋ฐ๋์ super(props)๋ฅผ ํตํด ๋ถ๋ชจ ์ปดํฌ๋ํธ์ ์์ฑ์๋ฅผ ํธ์ถํด์ผํ๋ค.
์ํ๋ฉด ์๋ฌ ๋ฐ์
๋ ๋๋ง ์ดํ ๊ฐ ์์ ํ๋ ค๋ฉด this.state = "๋ณ๊ฒฝํ ๊ฐ" ์ด๋ ๊ฒ ์ฌ์ฉํ๋ฉด ์ ๋ ์๋๊ณ setState() ํจ์๋ฅผ ์ด์ฉํด ์์
์์์ ๋ง๋ Counter Component์ constructor()๋ฅผ ์ด์ฉํด์ ๋ฐ์ดํฐ ์ด๊ธฐํ, super(props)๋ฅผ ํตํด์
๋ถ๋ชจ ์ปดํฌ๋ํธ์ ์์ฑ์๋ฅผ ํธ์ถํ ๋ค์ this.state = {...}์ ์ด๊ธฐํํ ๊ฐ์ฒด๋ฅผ ์ ์ธ
๊ทธ๋ฆฌ๊ณ ํธ๋ค๋ฌ์์ this๊ฐ ๋ฌด์์ ๋ํ๋ด๋์ง ์ ์ ์๋๋ก ์์ฑ์์์ ์๋์ฒ๋ผ change ๋ฉ์๋๋ฅผ ํ์ฌ ์ปดํฌ๋ํธ๋ฅผ ๋ฐ์ธ๋ฉํ ํจ์๋ก ์์ ํด์ผ ํจ
this.change = this.change.bind(this);
์์ ์ฝ๋๋ ์์ฑ์์์ state๊ฐ์ id์ ์ด๊ธฐ๊ฐ์ "Iron Man"์ผ๋ก ์ค์ ํ ๋ค์ ๋ฒํผ ํด๋ฆญ ์ ์์ด๋๊ฐ์
setState๋ฅผ ํตํด "lsy"๋ก ์์ ํ๋ ๊ฐ๋จํ ์ฝ๋์
๋ง๋ ์ปดํฌ๋ํธ๋ฅผ ์ต์ข ์ ์ผ๋ก ํ๋ฉด์ ๋ ๋๋ง ํ๊ธฐ ์ํด์ ReactDOM.render() ์ฌ์ฉ
ReactDOM.render()์ 1๋ฒ ์งธ parameter๋ ๋ ๋๋งํ component, 2๋ฒ ์งธ parameter๋ ๋ ๋๋งํ element(div id="root")
๋ณต๊ธฐํ๋ ์ฐจ์์ ๊ฐ๋จํ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ
Props ๐
๋ถ๋ชจ ์ปดํฌ๋ํธ๊ฐ ํ์ ์ปดํฌ๋ํธ์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๊ธฐ ์ํ ์์(์ฝ๊ธฐ ์ ์ฉ)
์ ๋ฌ๋ฐ์ ์์์์๋ props์ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์์
๊ฐ์ธ๊ณต๋ถ๋ฅผ ๊ธฐ๋กํ๋ ๊ณต๊ฐ์ด๋ผ ํ๋ฆฐ ์ ์ด ์์ ๊ฒฝ์ฐ ๋๊ธ ๋ถํ๋๋ฆฝ๋๋ค.
'IT > development' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Vue.js] ajax๋ก ๋ฐ์ดํฐ ์กฐํ ์์ (feat. axios) (18) | 2023.07.23 |
---|---|
[ChatGPT] ChatGPT ๊ณ ๋ง๋ค. (0) | 2023.07.22 |
[html] button์ type์ ๋ช ์ํ์(feat. default submit) (0) | 2023.07.09 |
[dbeaver] dbeaver DDL, DML ์์ฑ (0) | 2023.07.08 |
[JavaScript] ๋์ ์๋ฆฌ๋จผํธ onclick ๋ฌธ์์ด (0) | 2023.07.05 |
๋๊ธ