๋ค์ด๊ฐ๊ธฐ ์ ์ ...
๐ ๋ฆฌ์กํธ 16.8 ์ด์ ๋ฒ์ ์์๋ ํจ์ ์ปดํฌ๋ํธ์์ state๋ฅผ ์ฌ์ฉํ ์ ์์์ต๋๋ค. ํ์ง๋ง 16.8 ๋ถํฐ๋ useState๋ผ๋ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํจ์ ์ปดํฌ๋ํธ์์๋ state๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋์์ต๋๋ค. ์ฌ์ฉ๋ฒ์ ํด๋์ค ์ปดํฌ๋ํธ์ ์กฐ๊ธ ๋ค๋ฅธ๋ฐ์.
์ด ๊ณผ์ ์์ Hook์ ์ฌ์ฉํฉ๋๋ค.
โญ๏ธ ๋ฐฐ์ด ๋น๊ตฌ์กฐํ ํ ๋น
- ๋ฐฐ์ด ์์ ๋ค์ด์๋ ๊ฐ์ ์ฝ๊ฒ ์ถ์ถํ ์ ์๋๋ก ๋์์ฃผ๋ ES6 ๋ฌธ๋ฒ ์ค ํ๋ ์ ๋๋ค.
// ์์ 1.(๊ฐ์ฒด ๋ฆฌํฐ๋ด)
const person = {
name: 'ํ๊ธธ๋',
age: 30,
address: '์์ธ์ ๊ฐ๋จ๊ตฌ',
email: 'honggildong@naver.com'
}
const { name, age } = person;
// ์์ 2. (๋ฐฐ์ด)
const colors = ['red', 'green', 'blue'];
const [firstColor, , thirdColor] = colors;
useState ์ฌ์ฉํ๊ธฐ
- ๋ฆฌ์กํธ ํ (hook) ์ค ํ๋๋ก ํจ์ํ ์ปดํฌ๋ํธ์์ ์ํ๋ฅผ ๊ด๋ฆฌํ ์ ์๊ฒ ํด์ค๋๋ค.
- ์ํ๊ฐ ๋ฐ๋๊ณผ ๋์์ ๋ ๋๋ง์ ํด์ค๋๋ค.(์๋์ผ๋ก ํ๋ฉด ์
๋ฐ์ดํธ)
์) await ์ํ ๋ณ๊ฒฝ์ ๋ฐ๋ก ์ ๋ฐ์ดํธ!! - useState ํจ์์ ์ธ์์๋ ์ํ์ ์ด๊ธฐ๊ฐ์ ๋ฃ์ด์ค๋๋ค.
1. ๋ฒํผ ํด๋ฆญ์ ๊ธ์์ ๋ฐ๊พธ๊ธฐ
import React, {useState} from "react";
const Say = () => {
const [messages, setMessage] = useState("default");
const onClickEnter = () => setMessage("์๋
ํ์ธ์.");
const onClickLeave = () => setMessage("์๋
ํ ๊ฐ์ธ์.");
const [colorTest, setColor] = useState("purple");
return (
<>
<button onClick={onClickEnter}>์
์ฅ</button>
<button onClick={onClickLeave}>ํด์ฅ</button>
<button style={{background:"blue" , color:"white", border:"none"}} onClick={()=>setMessage("ใ
ใ
ใ
ใ
")}>์์ฉํด๋ณด์ฆ์</button>
<h1 style={{color : colorTest}}>{messages}</h1>
<button style={{color:"red"}} onClick={()=>setColor("red")}>๋นจ๊ฐ์</button>
<button style={{color:"green"}} onClick={()=>setColor("green")}>์ด๋ก์</button>
<button style={{color:"orange"}} onClick={()=>setColor("orange")}>์ฃผํฉ์</button>
</>
);
}
export default Say;
import './App.css';
import Say from './0411_4_Say';
function App() {
return (
<>
<Say />
</>
);
}
export default App;
2. ์ค์๊ฐ ์๊ฐ ๋ณด์ฌ์ฃผ๊ธฐ
import React, {useState} from "react";
const Clock = () => {
const [currentDate, setDate] = useState(new Date());
const tick = () => {
setDate(new Date());
}
setInterval(tick, 1000);
return (
<div>
<h1>ํ์ฌ ์๊ฐ์ ํ์ํฉ๋๋ค.</h1>
<h2>ํ์ฌ ์๊ฐ์ {currentDate.toLocaleTimeString()} ์
๋๋ค.</h2>
</div>
);
}
export default Clock;
import './App.css';
import Clock from './0411_5_Clock';
function App() {
return (
<>
<Clock />
</>
);
}
export default App;
'๐จ Frontend > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ฎ React - 6. Ref์ DOM (0) | 2023.04.13 |
---|---|
๐ฎ React - 5. ์ด๋ฒคํธ ํธ๋ค๋ง (0) | 2023.04.12 |
๐ฎ React - 3. ์ปดํฌ๋ํธ(Component) (0) | 2023.04.11 |
๐ฎ React - 2. JSX(JavaScript XML) (0) | 2023.04.10 |
๐ฎ React - 1. React ์์ํ๊ธฐ! (2) | 2023.04.10 |