inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex

[리팩토링&퀴즈] mutations 적용 및 퀴즈 안내

state질문드립니다.

해결된 질문

180

도리강

작성한 질문수 15

2

vuex state 질문드립니다. 

모든 컴포넌트에서 state가 접근하다보니 전역적인 객체 느낌이 있는데요. 전역적으로 사용하고자 할 때는 state를 사용하고 특정 컴포넌트 간에 캡슐화하여 사용할 때는 data 속성을 사용하면 되는 건가요 ? 

그리고 state를 사용하면 영향을 받는 컴포넌트들도 많아지면서 부담스러워 질 것 같기도  한데 어떤 상황에서 사용하는게 좋을지 궁금합니다.

javascript vuex vuejs es6

답변 1

4

캡틴판교

안녕하세요 도리강님, 좋은 질문 주셨네요 :) 처음에 상태 관리라는 개념 자체를 처음 받아들이시는 분들이 가장 많이 질문하시는 내용인데요. state를 언제 사용해야 하는지에 대한 판단은 컴포넌트 간에 데이터를 어떤 식으로 주고 받을 거냐 하는 관점에서 결정하시면 좋을 것 같습니다 :)

사례를 하나 살펴보면, 컴포넌트 깊이가 1depth(부모 - 자식)인 경우에는 굳이 스토어를 통해서 데이터를 전달하실 필요는 없습니다. 스토어를 거치치 않고도 props와 event emit으로 충분히 전달할 수 있기 때문입니다 :) 반대로 컴포넌트의 깊이가 깊거나 컴포넌트 간의 거리가 먼 경우에는 데이터 전달을 props와 event emit으로 했을 때 중개해주는 코드가 너무 많이 발생하고 데이터 전달도 쉽지 않은데요. 이런 경우에는 스토어를 이용해서 같은 데이터(state)를 변경하고 접근하는 것이 편합니다.

state를 사용했을 때 여러 컴포넌트에 영향을 주는 것이 부담스러우시다고 하셨는데요. 해당 문제는 꼭 필요한 곳에서만 스토어를 사용하시면서 남용하는 걸 줄이면 해결될 수 있는 문제 같습니다 :) 아래 질문을 항상 염두에 두고 스토어의 로직을 구현하시면 좋을 것 같습니다.

  • state를 사용하지 않고도 data 속성으로 해결될 수 있는 문제인가?

수강해 주셔서 감사합니다 :)

Chrome 개발자 모드 확장이 안됨

0

253

1

깃 권한 요청드립니다

0

118

1

vue.js 중급 리포지토리 권한 관련

0

118

1

vuex + axios 질문 있습니다!

1

198

2

깃 권한 요청드립니다!

0

161

1

강의 깃주소 문의

0

142

1

router-view에 props를 어떻게 넘길 수 있나요?

1

278

2

Vue가 인식되지 않는 현상

0

205

1

기초강좌는 어디있나요?

1

190

2

App.vue가 필요한 이유

0

192

1

getter가 정의되어 있지 않아 오류가 발생합니다.

1

253

1

뷰 라이프사이클

1

187

1

TSLint 말고 TSLint Vue 설치해도 되나요?

1

367

3

로컬 스토리지는 어디에 있나요?

1

279

1

vuex 실행시 새로고침해야지만 리스트에 나타나는 현상

1

387

2

export default 관련한 질문

0

354

2

깃허브 vue-todo 접근불가에 따른 확인요청

1

354

2

깃허브에 문제있는것 같습니다.

1

273

2

인프런 강의 재생 화면 구성 변경 문의드립니다

1

303

2

addTodo Helper 함수 적용

1

242

1

vuex 헬퍼 전역 설정

1

245

2

github 권한요청드립니다.

1

256

2

이벤트 위치에 대한 궁금증 입니다.

1

223

2

구조 차이에 대한 문의

1

344

2