์ดํƒœํ™
ํ™'story
์ดํƒœํ™
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (171)
    • TW (39)
    • AI (47)
      • ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ (10)
      • Kaggle (2)
      • Machine Learning (26)
      • Computer Vision (0)
      • Deep Learning (0)
      • ROS2 (7)
    • Computer Science (29)
      • Data Structure (0)
      • Algorithm (18)
      • Computer Architecture (5)
      • SOLID (0)
      • System Programing (6)
    • LOLPAGO (10)
      • ํ”„๋ก ํŠธ์—”๋“œ (10)
      • ๋ฐฑ์—”๋“œ (0)
    • BAEKJOON (2)
    • React (5)
    • ์–ธ์–ด (8)
      • C++ (8)
    • GIT (0)
    • MOGAKCO (19)
    • ๋ฏธ๊ตญ ์—ฌํ–‰๊ธฐ (3)
    • etc. (7)
      • Blog (2)
      • ์ฝœ๋ผํ†ค (2)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • LOLPAGO
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ๋ฐฑ์ค€
  • ๊ธฐ๊ณ„ํ•™์Šต
  • ๊ฒฝ์‚ฌํ•˜๊ฐ•๋ฒ•
  • computerscience
  • Ai
  • ๋”ฅ๋Ÿฌ๋‹
  • C++
  • pytorch
  • baekjoon
  • ๋จธ์‹ ๋Ÿฌ๋‹
  • computer architecture
  • ROS2
  • algorithm
  • kaggle
  • react
  • ML
  • tw
  • NLP

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
์ดํƒœํ™

ํ™'story

[React] ๋ฆฌ์•กํŠธ ํ›…์Šค(1) - useState
React

[React] ๋ฆฌ์•กํŠธ ํ›…์Šค(1) - useState

2024. 2. 23. 21:54

๐Ÿš— useState

state๋ž€ ์ปดํฌ๋„ŒํŠธ์˜ ์ƒํƒœ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

 

useState๋Š” ์ปดํฌ๋„ŒํŠธ์˜ ์ƒํƒœ๋ฅผ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ƒ์„ฑํ•˜๊ณ  ์—…๋ฐ์ดํŠธ ์‹œ์ผœ์ฃผ๋„๋ก ์‚ฌ์šฉํ•œ๋‹ค.

 

๊ธฐ๋ณธ์ ์ธ ํ˜•ํƒœ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

 

const[state, setState] = useState(์ดˆ๊ธฐ๊ฐ’);

 

 

์ดˆ๊ธฐ๊ฐ’์„ ์ธ์ž๋กœ ๋„ฃ์œผ๋ฉด state์™€ setState๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ์š”์†Œ๋ฅผ ๋ฐฐ์—ด ํ˜•ํƒœ๋กœ ๋ฆฌํ„ดํ•ด์ค€๋‹ค.

 

์šฐ๋ฆฌ์˜ ํ˜„์žฌ ์ƒํƒœ๊ฐ’์ด state๋ผ๋Š” ๋ณ€์ˆ˜์— ๋“ค์–ด๊ฐ€๊ฒŒ ๋˜๋Š”๋ฐ ์ด๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด setState๋ฅผ ์ด์šฉํ•ด์„œ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋‚ด๋ถ€์˜ ๋ณ€์ˆ˜ ์ด๋ฆ„์€ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๋Œ€๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

๐Ÿš“ useState ์‚ฌ์šฉํ•ด๋ณด๊ธฐ

์šฐ๋ฆฌ๋Š” ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋ฉ”๋‰ด์— ์„ ํƒํ•œ ํ™”๋ฉด์„ ๋ณด์—ฌ์ฃผ๋„๋ก ํ•˜๋Š” state ๋ฅผ ์„ค์ •ํ•˜๋„๋ก ํ•ด๋ณด์ž.

const [selected, setSelected] = useState('๋ฉ”์ธ');

 

 

์œ„์™€ ๊ฐ™์ด ๋ฐฐ์—ด์„ ์„ ์–ธํ•˜๋„๋ก ํ•œ๋‹ค.

 

์ด์ œ ํ•˜๋“œ์ฝ”๋”ฉ์ด ์•„๋‹ˆ๋ผ selected๋ผ๋Š” state์•ˆ์— ๋“ค์–ด์žˆ๋Š” ์ดˆ๊ธฐ๊ฐ’ '๋ฉ”์ธ'์ด ๋“ค์–ด๊ฐ€๋„๋ก ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ด์ œ ํด๋ฆญ์„ ํ–ˆ์„ ๋•Œ ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด onClick ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค.

 

๋ฒ„ํŠผ๊ณผ Span์„ ์ด์šฉํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ state๋ฅผ ๋ณ€๊ฒฝํ•ด๋ณด๋„๋ก ํ•˜์ž.

 

๋ฒ„ํŠผ์„ ๋ˆ„๋ฅผ๋•Œ ์ž˜ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

๋ฉ”์ธ

 

 

๊ฒฐ์ œ

์ „์ฒด ์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

 

import { LOGO } from 'assets/images';
import { Image } from 'components/img';
import styled from 'styled-components';
import { useEffect, useState } from 'react';


const HeaderDiv = styled.div`
	width: 100%;
	box-sizing: border-box;
	padding: 20px 80px 0;
`;

const Header = () => {
	const [selected, setSelected] = useState('๋ฉ”์ธ');

	return (
		<HeaderDiv>
			<Image src={LOGO} alt="LOLPAGO" />
			<button onClick={() => setSelected('๋ฉ”์ธ')}>๋ฉ”์ธ</button>
			<button onClick={() => setSelected('๊ฒฐ์ œ')}>๊ฒฐ์ œ</button>
			<span>{selected}</span>
		</HeaderDiv>
	);
};

export default Header;

 

๋ฆฌ์•กํŠธ ์ •๋ฆฌ๋Š” ๋กคํŒŒ๊ณ ์™€ ํ•จ๊ป˜ ์ง„ํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ˆœ์„œ๋Œ€๋กœ ๋ณด๋ฉด ๋„์›€์ด ๋œ๋‹ค.

 

https://2t-hong.tistory.com/173

 

[LOLPAGO] React ์„ค์น˜ ๋ฐ Header ๊ตฌ์„ฑ(3)

๐Ÿš—jsconfig.json ์ง€๋‚œ ์‹œ๊ฐ„์— ์ด์–ด Header์˜ ๊ตฌ์„ฑ์„ ์ง„ํ–‰ํ•ด๋ณด๊ฒ ๋‹ค. ๋ณด์ด๋Š” ํ™”๋ฉด๊ณผ ๊ฐ™์ด Header๋ฅผ App.js์— import ํ–ˆ์ง€๋งŒ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ฝ์–ด๋ณด๋ฉด ๊ฒฝ๋กœ ๋ฌธ์ œ๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋Š”๋ฐ ๋ฆฌ์—‘

2t-hong.tistory.com

 

์œ„๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉด ์ข‹๊ฒ ๋‹ค.

 

useState๋ฅผ ์ด์šฉํ•˜์—ฌ ์ƒํƒœ๋ฅผ ์‰ฝ๊ฒŒ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์•˜๋‹ค.

 

ํ•ด๋‹น ๋‚ด์šฉ์€ ๋ณ„์ฝ”๋”ฉ๋‹˜์˜ ReactHooks์— ์ทจํ•œ๋‹ค๋ฅผ ์ฐธ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค.

 

 

https://www.youtube.com/playlist?list=PLZ5oZ2KmQEYjwhSxjB_74PoU6pmFzgVMO

 

React Hooks์— ์ทจํ•œ๋‹ค - ๋ฆฌ์•กํŠธ ํ›…์Šค ์‰ฝ๊ฒŒ ๋งˆ์Šคํ„ฐํ•˜๊ธฐ

 

www.youtube.com

 

'React' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[React] mapํ•จ์ˆ˜ ์‚ฌ์šฉ๋ฒ•  (0) 2024.02.27
[React] ๋ฆฌ์•กํŠธ ํ›…์Šค(3) - useLocation, useNaviation  (0) 2024.02.26
[React] PNGํŒŒ์ผ์„ SVGํŒŒ์ผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•  (1) 2024.02.21
[React] ํ™”๋ฉด์ด ์‹คํ–‰๋˜๋Š” ๋ฐฉ๋ฒ•์˜ ์ดํ•ด  (1) 2024.02.21
    'React' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [React] mapํ•จ์ˆ˜ ์‚ฌ์šฉ๋ฒ•
    • [React] ๋ฆฌ์•กํŠธ ํ›…์Šค(3) - useLocation, useNaviation
    • [React] PNGํŒŒ์ผ์„ SVGํŒŒ์ผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•
    • [React] ํ™”๋ฉด์ด ์‹คํ–‰๋˜๋Š” ๋ฐฉ๋ฒ•์˜ ์ดํ•ด
    ์ดํƒœํ™
    ์ดํƒœํ™
    ๊ณต๋ถ€ํ•˜์ž ํƒœํ™์•„

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”