다시 공부

useState (배열)

콛 다이어리 2024. 8. 27. 01:42

자바스크립트에서는 배열 변경이 가능하지만

state로 저장할 때는 변경할 수 없도록 해야한다.

객체와 마찬가지로,

state에 저장된 배열을 업데이트하고 싶을 때는

새 배열을 생성하거나

기존 배열의 복사본을 생성한 뒤,

이 배열을 state로 두어 업데이트 해야함

 

변경하지 않고 배열 업데이트하기

arr[1] = 'maltese' 처럼 재할당하면 안 됨

push( ), pop( ) 같은 함수 사용하면 안 됨

filter( ), map( ) 같은 함수로 새 배열 만들고

새 배열들을 state에 설정

 

  비선호
(배열 변경)
선호
(새 배열 반환)
추가 push, unshift concat, [...arr] 전개 연산자
제거 pop, shift, splice filter, slice
교체 splice, arr[i] = ... 할당 map
정렬 reverse, sort 배열을 복사한 이후 처리

Immer를 사용하면

artwork.seen = nextSeen과 같이 변경해도 괜찮다.

 

그니까

1. state로 만든 배열은 바꾸면 안돼

2. 새 배열을 만들고 state 업데이트 해서 변경해

3. [...arr, newItem] 배열 전개 구문으로

새 항목을 포함한 배열을 만들 수 있어

4. filter( )랑 map( )를 사용할 수 있어

5. Immer를 사용하여 코드 간결성을 유지할 수 있어

 

'다시 공부' 카테고리의 다른 글

배치 업데이트(Batch Update)  (1) 2024.10.18
함수명 짓기  (4) 2024.10.15
환경 변수  (1) 2024.09.20
useState (문자, 숫자)  (0) 2024.08.27
변수 var, let, const와 변수 선언 규칙  (0) 2024.07.27