개발자
안녕하세요! 사이드 프로젝트로 node.js로 친구들과 개발하고 있는데요. 코드를 계속 짜다보니 전역 변수가 너무 많아지는 것 같습니다. 혹시 전역 변수를 없애는 방법이 있나요? 예시를 들자면, 파일 A const state = { a: 1, b: 2, c: 3 } const useFoo = () => { console.log(state.a); } const useFoo2 = () => { console.log(state.b); state.c = state.a + state.c; } 이런 형태입니다! 계속 저 전역 state 객체가 커지고 있어서요 ㅠㅠ 아 또 다른 질문은 하나의 파일에 정의된 값을 다른 파일에서 수정할 수 없는건가요? 예를 들면, A 라는 파일에서 let to_be_exported_value = 10; 이라고 선언하고 B라는 파일에서 to_be_exported_value에 다른 값을 넣어주고 싶은데 안되더라구요? 감사합니다!
답변 1
안녕하세요! "전역 state 관리" 이거는 여러가지 방법이 있을 것 같습니다. 직접 만드실수도 있고, zustand 같은 상태 관리 라이브러리를 사용하셔도 될 것 같아요. 참고할만한 링크들 첨부할게요 참고: - https://github.com/pmndrs/zustand - https://www.npmjs.com/package/vanilla-state - https://dev.to/bnevilleoneill/state-management-pattern-in-javascript-sharing-data-across-components-2gkj - https://krasimirtsonev.com/blog/article/javascript-module-system-for-state-management "한 파일에 정의된 값을 다른 파일에서 수정할 수 없습니다" 기본적으로 한 파일에 작성된 코드는 따로 export를 하지 않는 이상 해당 파일에서만 사용 가능합니다. 이건 Module 시스템을 이해하시면 좋을 것 같아요. (ES6 이상이라는 가정하에) 간단히 설명하자면 한 파일에서 export 되는 것들은 read-only로 export 된다고 생각하시면 됩니다. let to_be_exported_value = 10의 경우는 primitive type 인 숫자를 사용했기에 다른 파일에서 import 될 때는 const로 선언한 것과 같습니다. 참고: - https://exploringjs.com/es6/ch_modules.html#sec_imports-as-views-on-exports - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules - https://hacks.mozilla.org/2018/03/es-modules-a-cartoon-deep-dive/
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!