velopert/react-tutorial

4. 리덕스 모듈 만들기 · GitBook

utterances-bot opened this issue · 2 comments

4. 리덕스 모듈 만들기 · GitBook

https://react.vlpt.us/redux/04-make-modules.html

기초적인 질문일수도 있지만.. modules/todo.js에서 nextId를 memo를 사용하지않고 let변수로 선언하기만했는데 onCreate를 실행했을때 nextId가 이전의 값을 기억하고 1씩 증가할수 있는 이유가 궁금합니다..

@hyunjong-96 자바스크립트의 클로저 덕분에 addTodo가 export되어도 같은 영역을 공유하는 전역 변수 nextId의 레퍼런스를 유지할 수 있습니다.

참고자료: https://jake-seo-dev.tistory.com/182

// myModule.js
let x = 5;
export const getX = () => x;
export const setX = (val) => {
  x = val;
};
import { getX, setX } from "./myModule.js";

console.log(getX()); // 5
setX(6);
console.log(getX()); // 6