immer.js로 불변성 관리
immer.js를 알아보자.
Immer.js란?
Immer.js는 불변성을 쉽게 관리할 수 있도록 도와주는 JavaScript 라이브러리이다.
특히 상태 관리가 중요한 React 애플리케이션에서 유용하게 사용된다.
Immer.js는 복잡한 상태 업데이트를 간결하고 직관적으로 작성할 수 있게 해준다.
Immer.js의 주요 특징
불변성 유지: Immer.js는 원본 상태를 직접 수정하지 않고 불변성을 유지한다.
대신, produce 함수를 통해 새로운 상태를 생성한다.간단한 문법: 기존 상태를 기반으로 새로운 상태를 작성하는 과정을 단순화한다.
복잡한 상태 업데이트 로직을 간결하게 표현할 수 있다.타입 안정성: TypeScript와 함께 사용하면 타입 안정성을 제공하여 코드의 안전성을 높인다.
설치와 사용법
1
2
3
npm install immer
또는
yarn add immer
기본 사용법
Immer.js의 핵심은 produce 함수이다. 이 함수는 두 개의 인수를 받는다.
첫 번째 인수는 원본 상태이고, 두 번째 인수는 초안 상태를 변경하기 위한 함수이다.
예제코드
간단한 상태 업데이트와 객체 상태 업데이트 예제를 통해서 알아보자.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import produce from "immer";
const baseState = [
{
todo: "Learn immer",
done: false
},
{
todo: "Use immer",
done: false
}
];
const nextState = produce(baseState, draft => {
draft[1].done = true;
});
console.log(nextState);
// [
// { todo: "Learn immer", done: false },
// { todo: "Use immer", done: true }
// ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const baseState = {
name: "John",
age: 30,
hobbies: ["reading", "gaming"]
};
const nextState = produce(baseState, draft => {
draft.age = 31;
draft.hobbies.push("coding");
});
console.log(nextState);
// {
// name: "John",
// age: 31,
// hobbies: ["reading", "gaming", "coding"]
// }
Immer.js의 장점
- 코드 가독성 향상: 상태 업데이트 로직을 더 읽기 쉽고 유지보수하기 쉽게 만든다.
- 불변성 보장: 원본 상태를 보호하여 예기치 않은 상태 변경을 방지한다.
- 성능 최적화: 깊은 복사 없이 효율적인 상태 관리를 가능하게 한다.
결론
Immer.js는 상태 관리의 복잡성을 줄이고 코드를 간결하게 만드는 데 유용한 도구이다.
특히, 복잡한 상태 업데이트가 필요한 대규모 프로젝트에서 유용하다.
불변성을 지키며 상태 관리를 더욱 쉽게 할 수 있다.
This post is licensed under CC BY 4.0 by the author.