React! ๋ ๊ฐ์ ๋ณํ์ react ๋ฐ์ํ๋ค๋ ์ปจ์ ์ ๊ฑธ๋ง๊ฒ
๋ณ์ ๊ฐ์ด ๋ฐ๋ ๋ ๋ง๋ค getElementById~ innerText~ ์ผ์ผํ ํด์ฃผ๋๊ฑธ ํด์ฃผ์ง ์์๋ ๋๋ค.
๊ฐ์ด ๋ณํ๋ฉด UI๋ ์๋์ผ๋ก ๋ฐ๊ฟ์ค๋ค. ->
State
state๊ฐ ๋ณํ๋ฉด UI๊ฐ ๋ณํ๊ฒ ํ๋ค.
ํฐ๋ฏธ๋ ํ๋ก์ ํธ
๋ง๋ค๊ณ ์ถ์ ํด๋ ์์ฑ mkdir react-test
cd react-test
npx create-react-app ํด๋๋ช ๋๊ฐ์ ๊ฒฝ์ฐ๋ npx create-react-app rsp ๋ก ํจ
์์ฑํ๋๋ฐ ์๊ฐ ์ข ๊ฑธ๋ฆผ.
cd rsp
code . ํ๋ฉด ๋ฐ๋ก ์ธํ ๋ ๋น์ฅฌ์ผ ์คํ๋์ค ์ฝ๋ ํ๋ก์ ํธ๊ฐ ์ด๋ฆฐ๋ค.
1. App.js App.css ์ ๋ฆฌ
App.css ํ์ผ ์์ ์๋ ๋ชจ๋ ๋ด์ฉ ์ง์์ค๋ค.
์๋์ ๊ฐ์ด ์ ๋ฆฌํด์ค๋ค.
import logo from './logo.svg';
import './App.css';
function App() {
return (
<div>
</div>
);
}
export default App;
2. React hook์ธ useState ์ ๋ํ ์ดํด
useState๋ฅผ import ํด์ค๋ค
import { useState } from 'react';
์๋์ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํด์ฃผ๊ณ react run start
import { useState } from 'react';
import './App.css';
function App() {
//๋ฆฌ์กํธ์ ์ปดํฌ๋ํธ : ๊ด๋ จ์๋ html๊ณผ js๋ฅผ ํจ๊ป ์ธ ์ ์๋ค. ์ฝ๋ ๊ด๋ฆฌ, ํ์ผ ๊ด๋ฆฌ ์ฉ์ด
//์๋ฐฐ์คํฌ๋ฆฝํธ ๋จ
//๋ฆฌ์กํธ์์ ์ ๊ณตํด์ฃผ๋ useState๋ผ๋ ํจ์๋ฅผ ํตํด state๋ฅผ ๋ง๋ฌ
//์ฐธ๊ณ ๋ก, ๋ฆฌ์กํธ์์ ์ ๊ณตํด์ฃผ๋ ์ ์ฉํ ํจ์๋ค์ react hook์ด๋ผ๊ณ ํ๊ณ ๊ทธ ์ค ํ๋๊ฐ useState์ธ ๊ฒ
//useState(0)์ ๋งค๊ฐ๋ณ์๋ ์ด๊น๊ฐ, ๋ฐฐ์ด ๋ฐํ [์ด๊ธฐ๊ฐ์ด ๋ด๊ธด state, state ๊ฐ์ ๋ณ๊ฒฝํด์ฃผ๋ ํจ์]
const [counter, setcounter] = useState(0);
const increase = () => {
setcounter(counter + 1); //setcounter2 ์ด ํจ์๋ง์ ์ด์ฉํด์ counter2๊ฐ์ ๋ฐ๊ฟ์ค๋ค
}
return (
//html๋จ
<div>
<button onClick={increase}>{counter}</button>
</div>
);
}
export default App;
ํด๋ฆญ ์๋ฅผ ๊ทธ๋๋ก ๋ณด์ฌ์ฃผ๋ ๋ฒํผ์ด ๋ณด์ธ๋ค.
UI์ ๋ณด์ฌ์ค์ผ ํ๋ ๊ฐ์ state๋ก ๋ง๋ค์ด์ผ ํจ : ๋ค๋ง ๋น๋๊ธฐ์ ์ผ๋ก ์๋ํด์ ๋๊ธฐ์ ๋นํด state๋ฐ๋๋๊ฑด ์๊ฐ์ด ์ข ๊ฑธ๋ฆผ
state ๋ฐ๊พธ๋ ํจ์๊ฐ ๋ฐ๋ก ์คํ์ด ๋๋๊ฒ ์๋๋ผ ํจ์๊ฐ ๋๋ ๋๊น์ง ๊ธฐ๋ค๋ ธ๋ค๊ฐ state ๋ฐ๊พธ๋ ํจ์๋ค์ ๋ชจ์์ ํ๋ฒ์ ์คํ
๋ํ state๋ ๊ทธ ์ ์ ๊ฐ์ ๊ธฐ์ตํจ
์ปดํฌ๋ํธ ์์ ์๋ state๊ฐ ๋ฐ๋๋ฉด UI์ ์ ๋ฐ์ดํธ๋ state ๊ฐ์ด ๋ณด์ธ๋ค.
์ปดํฌ๋ํธ ์์ ์๋ ์ผ๋ฐ ๋ณ์๋ค์ ์์ ๋ค์ ์ด๊ธฐํ๋จ
<์ ๋ฆฌ>
* ๋ณ์๋ re render ๋ ๋๋ง๋ค ์ด๊ธฐํ๊ฐ ๋๋ค.
* state ๊ฐ์ ๋น๋๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌ๋๋ค.
state๋ const๋ก ์ ์ธstate์ ๊ฐ์ ๊ณ์ ๋ฐ๋๋๋ฐ const๋ก ์ ์ธ |
function MyReact{
function (){
let val
useState(inivialValue){
val = val | inivialValue
function setState(newValue){
val = newValue
}
return [val,setState]
}
}
}
const [counter,setCounter]=MyReact.useState(0)
state๋ ์ผ๋ฐ ๋ณ์์ ๋ฌ๋ฆฌ setState ํจ์๋ฅผ ์ด์ฉํ์ฌ ๊ฐ์ ๋ณ๊ฒฝ (ํจ์ ๋ด๋ถ์ ๋ณ์๊ฐ ํจ์ ์๋ช ์ด ๋๋๋๋ผ๋, ๋ณ์์ ์ฐธ์กฐ๊ฐ ๊ณ์ ๋๋ค๋ฉด ๊ทธ ๋ณ์์ ์๋ช ์ ๊ณ์ ๋๋ค.- ํด๋ก์ ์ด๋ ๊ฒ ์ปดํฌ๋ํธ๊ฐ render ๊ฐ ๋๋๋ผ๋ state๋ฅผ ๊ธฐ์ตํ ์ ์๋ค.) setState๋ฅผ ์ฌ์ฉํ ๋ณ์ ๋ณ๊ฒฝ๋ง ํ๋ฝํ๊ธฐ์ํด const๋ก ์ ์ธ (const๋ก ์ ์ธํ๋ฉด ๋ณ์ํํ์ ์ฌ ํ ๋น์ ๋ง์ ์ ์๋ค.) |
3. ๊ฒฐ๋ก
์ฌ๋งํ ๊ฐ์ state๋ฅผ ์ฐ๋, ์ ๊น ๊ธฐ์ตํด์ผํ๋ ๊ฐ๋ง ๋ณ์๋ฅผ ์ด๋ค.