Notice
Recent Posts
Recent Comments
Link
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ์ฝ๋ฉ
- ์๋ฐ์คํฌ๋ฆฝํธ
- ComputerScience
- html
- ์ค๋ผํด
- ๋ง์ผ๋ด๊ฐ์ธ์์๋ค์์ฐ๋ค๋ฉด
- ์ํ
- JavaScript
- ๊น๋ฏธ๊ฒฝ์๋งํ์์
- ๋ฆฌ์กํธ
- ์นํผ๋ธ๋ฆฌ์ฑ
- ๋ ์
- Python
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- Java
- css
- ํ๋ก๊ทธ๋๋ฐ
- ์ฑ
- ํ์ด์ฌ
- ์ค๋ธ์
- database
- ์๋ฐ
- ๋ฐ์ํ
- ๋ผํ๋ผ์ค์๋ง๋
- ์ปดํจํฐ๊ณผํ
- K๋ฐฐํฐ๋ฆฌ
- K๋ฐฐํฐ๋ฆฌ๋ ๋ณผ๋ฃจ์
- ์นํ์ด์ง๋ง๋ค๊ธฐ
- ๊ฐ๋ฐ
Archives
- Today
- Total
JiYoung Dev ๐ฅ
[React] ์ฐธ์ฐธ์ฐธ ๊ฒ์ ๋ง๋ค๊ธฐ (2023.05.26) ๋ณธ๋ฌธ
๐ ์ฐธ์ฐธ์ฐธ ๊ฒ์ ๋ง๋ค๊ธฐ
๐ ๊ฒ์๊ท์น
1. ๋๋ ๊ณต๊ฒฉ, ์ปดํจํฐ๋ ์๋น ๋ด๋น
2. ๋ด๊ฐ ๋ฒํผ์ ํด๋ฆญํ์ ๋ ๋์ ์ปดํจํฐ์ ์ ํ์ด ๊ฐ๋ค๋ฉด ๋(๊ณต๊ฒฉ)์ ์น๋ฆฌ
3. ๋์ ์ปดํจํฐ์ ์ ํ์ด ๋ค๋ฅด๋ค๋ฉด ์ปดํจํฐ(์๋น)์ ์น๋ฆฌ
๐ ์์ฑ์ฝ๋
import React, { useState, useEffect } from "react";
const Ex03 = () => {
/**
* ์ฐธ์ฐธ์ฐธ ๊ฒ์์ ๋ง๋ค์ด๋ณด์!
* ๊ฒ์ ๊ท์น
* 1. ๋๋ ๊ณต๊ฒฉ, ์ปดํจํฐ๋ ์๋น๋ฅผ ๋ด๋น
* 2. ๋ด๊ฐ ๋ฒํผ์ ํด๋ฆญํ์ ๋ ๋์ ์ปดํจํฐ์ ์ ํ์ด ๊ฐ๋ค๋ฉด ๋(๊ณต๊ฒฉ)์ ์น๋ฆฌ
* 3. ๋์ ์ปดํจํฐ์ ์ ํ์ด ๋ค๋ฅด๋ค๋ฉด ์ปดํจํฐ(์๋น)์ ์น๋ฆฌ
*
* ๋ฌธ์ ํ์ด
* 1. ํ์ํ state๋ค์ ๊ด๋ฆฌ : ๋ด์ ํ, ์ปดํจํฐ์ ํ, ๊ฒ์๊ฒฐ๊ณผ
* >> useState
* 2. ๋ด ์ ํ >> ๋ด๊ฐ ๋๋ฅธ ๋ฒํผ์ ๋ด์ฉ์ ์ ํ์ผ๋ก ์ผ๋๋ค.
* >> ์ด๋ฒคํธ ๊ฐ์ฒด
* 3. ์ปดํจํฐ ์ ํ >> ๋๋คํ๊ฒ ๋ฐ์์ฌ ๊ฒ(pos๋ผ๋ ๋ฐฐ์ด์์)
* >> ๋์ ๋ฝ๊ธฐ
* 4. ๋ง์ฝ ๋์ ์ ํ์ ํด๋นํ๋ state๊ฐ์ด ๋ณํ๋ค๋ฉด (๊ฒ์ ์์),
* ์นํจ๋ฅผ ํ๋ณํด ์ค ๊ฒ
* >> useEffect
* 5. ๊ฒ์์ด ์์ํ๊ธฐ ์ ์๋ "๊ฒ์๊ฒฐ๊ณผ : ํจ๋ฐฐ~" ๋ถ๋ถ์ด ๋์ค์ง ์๋๋ก ํ ๊ฒ
* >> ์กฐ๊ฑด๋ถ ๋ ๋๋ง
*/
let pos = ["์ข", "์ ๋ฉด", "์ฐ"];
const [myChoice, setMyChoice] = useState("");
const [comChoice, setComChoice] = useState("");
const [result, setResult] = useState("");
//๋์ ์ ํ์ ์ธํ
const handleChoice = (e) => {
setMyChoice(e.target.innerText);
//์ปดํจํฐ ์ ํ์ ์ธํ
let ran = parseInt(Math.random() * 3 + 1);
setComChoice(pos[ran]);
};
useEffect(() => {
//๊ฒ์ ๊ฒฐ๊ณผ ํ๋ณ
myChoice == comChoice ? setResult("์น๋ฆฌ") : setResult("ํจ๋ฐฐ");
}, [comChoice]);
return (
<div>
<h1>์ฐธ์ฐธ์ฐธ ๊ฒ์!</h1>
<h3>๋์ ์ ํ : {myChoice}</h3>
<h3>์ปดํจํฐ์ ์ ํ : {comChoice}</h3>
{myChoice && <h3>๊ฒ์ ๊ฒฐ๊ณผ : {result}</h3>}
{pos.map((item) => (
<button key={item} onClick={handleChoice}>
{item}
</button>
))}
</div>
);
};
export default Ex03;
โ๏ธ Q&A
const [myChoice, setMyChoice] = useState('')
{myChoice && <h3>๊ฒ์๊ฒฐ๊ณผ : {result}</h3>}
myChoice ์ ์ด๊ธฐ๊ฐ์ ๋น๋ฌธ์์ด
๋น๋ฌธ์์ด์ด๋ฉด false, ๋ฌธ์์ด์ด๋ฉด true์ธ๊ฐ?
JavaScript์์ ๋ฌธ์์ด ๋น ๊ฐ("")์ ์ ์ธํ ๋ชจ๋ ๋ฌธ์์ด์ true๋ก ๊ฐ์ฃผํจ!
'full stack > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[React] session/local storage์ ๋ฐ์ดํฐ ์ ์ฅํ๊ธฐ (2023.06.05) (0) | 2023.06.05 |
---|---|
[React] useEffect๋ฅผ ํตํด openAPI ๊ฐ์ ธ์ค๊ธฐ (Fetch, Axios)(2023.05.26) (0) | 2023.05.29 |
[React] Lifecycle (2023.05.24) (0) | 2023.05.24 |
[React] useRef (2023.05.24) (0) | 2023.05.24 |
[React] To-do List ๋ง๋ค๊ธฐ (2023.05.23) (0) | 2023.05.24 |