일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 클래스 속성
- 파이썬 반복문
- 장고 가상환경
- 파이썬
- 강제 타입변환
- Kotlin else if
- 좋은글
- 파이썬 제어문
- Kotlin 클래스
- Variable declaration
- 다중조건문
- Kotlin 조건문
- 파이썬 클래스
- 희망
- activate 오류
- Kotlin Class
- Kotlin If
- Python Class
- 넥스트js
- git
- Kotlin 클래스 속성정의
- 성공
- github
- Python
- django virtualenv
- 도전
- NextJs
- python Django
- 파이썬 장고
- 자바 기본타입
Archives
- Today
- Total
키모스토리
#8 useState (상태관리) 본문
반응형
useState는 컴포넌트에 state 변수를 추가할 수 있는 React Hook입니다.
const [state, setState] = useState(initialState)
참고 : https://ko.react.dev/reference/react/useState
useState – React
The library for web and native user interfaces
ko.react.dev
import { useState } from "react";
import "./App.css";
import Sub from "./Sub";
function App() {
console.log("App실행");
// useState : 데이터를 상태값으로 설정
// React안에 hooks 라이브러리 상태값이 됨 (UI와 동기화됨)
const[number, setNumber] = useState(1);
const add = () => {
// setNumber(number+1); // 리엑트한테 number값 변경을 요청.
setNumber(prev => prev + 1); // 함수형 업데이트 적용
console.log("add", number);
};
// 초기데이터
const userData=[
{id:1, name:"홍길동"},
{id:2, name:"임꺽정"},
{id:3, name:"장보고"},
{id:4, name:"이순신"},
];
console.log(userData);
// 회원목록
const[users, setUsers] = useState(userData);
const updateUsers = () => {
const getData={id:5, name:"김유신"}; // api호출결과값.
// const newList=userData.concat(getData); // 원본데이터 불변성
// setUsers(newList);
// console.log(newList);
// concat과 동일한 결과, 더욱 간단해짐.
setUsers([...userData, getData])
console.log(userData);
};
// 랜더링 시점 = 상태값 변경이 되는 경우
// 이전 데이터와 현재 데이터가 같은 경우 랜더링 하지 않음
return (
<div>
<h1>useState</h1>
<h1>숫자 : {number}</h1>
<button key='addButton' onClick={add}>더하기</button>
<Sub/>
<div>
<button onClick={updateUsers}>유저추가</button>
<div>
{users.map(user => (
<h1 key={'h1-'+user.id}>
{user.id}.{user.name}
</h1>
))}
</div>
</div>
</div>
);
}
export default App;
반응형
'Web Devlopment > ReactJs' 카테고리의 다른 글
#10 useMemo (0) | 2025.03.24 |
---|---|
#9 useEffect (0) | 2025.03.24 |
#7 배열(map, filter, slice, concat, spread연산자) (0) | 2025.03.21 |
#6 JSX (0) | 2025.03.21 |
#5 리액트 시작하기 (1) | 2025.03.12 |