# Immer
[리다기_12장] immer를 사용하여 더 쉽게 불변성 유지하기
리액트 컴포넌트의 불변성을 유지하게 도와주는 라이브러리인 immer를 소개합니다.

[React]-더 간단한 상태관리를 위해 Immer 사용해 보자!!
아무리 useReducer를 쓴다 해도 중첩된 객체가 많으면 많을수록 코드는 복잡해진다. 좀 더 직관적으로 간단하게 코드를 짜고 싶다면 Immer 라이브러리를 사용하면 된다!
immer란
불변성을 유지하면서도 쉽게 객체를 수정할 수 있는 라이브러리객체의 상태를 업데이트할 때, 기존 객체를 직접 수정하는 대신, 새로운 객체를 생성하여 수정하는 방식을 사용상태 업데이트를 위한 코드가 더욱 간결하고 가독성이 높아지며, 불변성을 유지하면서도 객체를 쉽게 수정할

React 라이브러리 Immer
Immer useReducer를 사용할때 중첩된 객체가 많으면 많을 수록 불변성의 특징으로 인해 코드가 복잡해진다. 좀 더 직관적인 방법으로 코드를 작성하고 싶다면 Immer를 사용하면 된다. Immer는 직접 관리해야 되는 불변성을 대신 관리해준다고 생각하면 된다.
(번역) State에서 객체 업데이트하기 - NEW 리액트 공식문서
State는 모든 종류의 JS 값을 담을 수 있다. 당연히 객체 포함! 그러나 state에서 직접적으로 객체를 바꾸면 안된다. 그렇게 하지 말고, 새로운 객체를 만들어서 (아니면 기존 객체를 copy) 그 사본으로 state를 설정해라! > ### 이 문서에서는..

[JavaScript] React의 불변성 관리
React에서 배열이나 객체를 업데이트 해야 할 때에는 직접 수정하면 안되며, 반드시 불변성을 지켜주면서 업데이트를 해야 한다.
React - immer, useImmer
useState로 상태를 관리하던 중 array/object 자료를 수정, 추가, 삭제할때 중첩 객체와 같이 자료가 복잡해지면 스프레드 연산자를 사용하여 객체를 복사하여 수정, 추가, 삭제와 같은 조작을 했을때 코드가 직관적이지 않고 알아보기 힘들 수 있다. 이를 스프
카카오 클라우드 스쿨 12월 9일 (데이터불변성), React Routing
불변성 > + React 에서는 props와 useState로 만든 데이터는 원본을 수정할 수 없습니다. Routing > + 요청 URL에 따라 분기를 해서 출력을 하는 것 SPA(Single Page Application) 1)Server Rendering

[React] 불변성 유지하기
불변성 유지하기: 1. 전개 연산자와 배열의 내장 함수를 통해 배열 혹은 객체를 복사하여 불변성을 유지하며 업데이트 할 수 있음. 2. immer 라이브러리를 사용하면 불변성을 크게 신경쓰지 않아도 불변성 관리를 할 수 있다.
Immer 톺아보기
https://immerjs.github.io/immer/produce >Immer (German for: always) is a tiny package that allows you to work with immutable state in a more conveni

immer
immer는 currentState의 프록시객체인 임시 draftState를 생성하여 수정, nextState를 생성하게 된다. 불변성을 유지하기위해 기존 reducer에서는 전개연산자 ,concat, filter, map같은 함수를 이용했지만, 가독성이 떨어지면 직관

리덕스 툴킷에서 immer 라이브러리 에러
immer 라이브러리 특성상, 배열이나 'length' 프로퍼티만 사용가능하기 때문에 위와 같이 boolean 값은 사용할 수 없다. 그래서 나는 단지 신호(알림)가 필요하기 때문에 return action.payload.loginSuccess 처럼 불린값을 dispa

createSlice 의 reducers 로 state 의 값 다루기
state 를 바꾸고 싶으면 copy 뜨고 copy 한 값을 바꿔서 리턴하자