250x250
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
- 테스트 Date
- 구름톤
- nextjs
- 구름톤챌린지
- 호텔 대실
- Leetcode #javascript #알고리즘 #Algorithms #js
- 최솟갑 구하기
- 날짜 테스트
- 연결 요소 제거하기
- 구름톤 챌린지
- 통신망분석
- Jest uuid syntax
- Hermes Engine
- 중첩 점
- 귤 고르기
- 테이블 해시 함수
- 리액트네이티브
- JavaScript
- jest
- 리액트네이티브 엔진
- create-next-app
- mock date
- 헤르메스 엔진
- ResizeObserver
- 과제 진행하기
- 자바스크립트
- nextjs-performance
- Google 애널리틱스
- 프로그래머스
- mutationobserver
Archives
- Today
- Total
나만보는개발공부블로그
[State]상태관리 본문
State?
- 화면에서의 현재 데이터들의 저장된것을 조작하기 위한 것이라 생각하면 된다.
- 예시로 객체간의 메세지 상호작용을 통해 프로그램을 구현할 때 객체가 가지고 있는 데이터들을 상태라고 할 수 있다.
Class Message{
data: string;
type: MessageType;
constructor(data: string, type: MessageType) {
this.data = data;
this.type = type
}
}
위의 코드에서의 data와 type이 상태이다.
- 또다른 예시로 CheckBox에서 데이터를 저장할때 on과 off가 있는 있는 경우로 들 수 있다.
프론트엔드의 상태관리란?
- 데이터에 맞춰서 적절하게 UX와 UI를 설계하고 구현하는 것
Example)
- 어느 숫자의 표기가 너무 많아질때 화면에 보여지는 부분의 크기가 더 커지면 UI가 이상해지니 이 부분을 요약해서 보여주는 형식으로 짧고 읽기 쉽게 바꿔주는 동적으로 변하게 하는것을 상태관리라고 할 수 있다.
- 어떠한 에러를 화면에 보여주는것도 여러가지 예외처리가 존재하는데 이러한 에러들을 보여주는 부분도 상태관리라고 할 수 있다.
상태종류
-Global State : 모든 요소, 컴포넌트의 앱에 접근가능한 state
import React from 'react'
import { useDispatch, useSelector } from 'react-redux'
import { inc } from './actions'
export const Counter = () => {
const dispatch = useDispatch()
const count = useSelector(store => store.counter.count)
return (
<>
<h1>The count is: {count}</h1>
<button onClick={() => dispatch(inc())}>Increment</button>
</>
)
}
<>
<Counter />
<Counter />
</>
위의 코드에서 count를 공유하게 된다.
-Local State : Global State와의 반대 개념
const Counter = () => {
const [count, setCount] = useState(0)
const incrememt = () => setCount(count => count + 1)
return (
<>
<h1>The count is: {count}</h1>
<button onClick={increment}>increment</button>
</>
)
}
<>
<Counter />
<Counter />
</>
위의 코드에서 count는 개별적으로 작동한다.
'Web Development > Front' 카테고리의 다른 글
[React]ref 와 forwardRef (0) | 2021.12.15 |
---|---|
[React] React.cloneElement (1) | 2021.06.17 |
[Angular] Data Binding & Change Detection (0) | 2021.03.12 |
[Angular] Angular Template Syntax (0) | 2021.03.12 |
[Angular] Component 구조 (0) | 2021.03.11 |