값을 직접 가져오거나 설정하는 대신 게터 및 돌연변이를 사용해야 하는 이유
다음 사이의 차이점:
this.currentLanguage = this.$store.getters.currentLanguage;
그리고 이는 게이터를 위한 것이다.
this.currentLanguage = this.$store.state.currentLanguage;
또한 다음과 같다.
this.$store.commit('setLanguages', this.languages);
돌연변이를 통해 동일한 결과를 얻을 수 있다.
this.$store.state.languages = this.languages;
나는 두 경우 모두 내가 원하는 것을 받고 있다.그리고 내가 getter/mutation을 쓸 필요가 없기 때문에 가치를 직접 얻는 것이 더 쉽다.왜 내가 게터/수업을 사용해야 하는가?
이 경우에는 게이터를 사용할 필요가 없다.Getter는 일반 Vue 구성 요소의 계산된 속성과 같으므로 데이터가 다른 데이터의 보다 복잡한 하위 항목인 경우에만 필요함.
하지만 돌연변이를 사용하길 원해 왜냐면 그게 그처럼 보일지라도this.$store.state.languages = this.languages
제대로 작동하고 있는 건 아니에요.스토어에 따라 다른 구성요소가 있는 경우, 완전한 돌연변이 과정을 거치지 않았기 때문에 새로운 데이터를 수신하지 못할 수 있다.
당신이 돌연변이를 사용할 때 당신은 vue-devtools와 같은 것들에서 무엇이 변했는지에 대한 명확한 기록을 갖게 된다.그것은 또한 시간 여행 디버깅을 허용한다.
디버깅할 때 정말 좋다.
주 대 게이터는 훨씬 더 애매한 영역이다.나는 개인적으로 무언가 안에 있다고 생각하지 않아도 되는 것을 좋아한다.state
또는 agetter
만약 내가 필요하다면get
내가 사용하는 가게의 물건getter
.
그 질문은 Vuex Docs 그 자체로 꽤 잘 대답되었다.
다시 말하지만, 우리가 직접 store.state.count를 바꾸는 대신 돌연변이를 저지르는 이유는 명시적으로 추적하고 싶기 때문이다.이 간단한 협약은 당신의 의도를 더욱 분명하게 만들어, 당신이 코드를 읽을 때 당신의 앱의 상태 변화에 대해 더 잘 추론할 수 있도록 한다.게다가, 이것은 우리에게 모든 돌연변이를 기록하거나, 상태 스냅샷을 찍거나, 심지어 시간 여행 디버깅을 수행할 수 있는 도구를 구현할 기회를 준다.https://vuex.vuejs.org/guide/ - 거의 바닥
그래서 기본적으로 아이디어는 변화를 명시적으로 추적하는 겁니다.이를 통해 다른 도구들이 이러한 돌연변이와 행동에 직접 부착하고 코드를 추적할 수 있어 대규모 애플리케이션에 큰 이점이 된다.그것은 또한 당신의 코드를 더 읽기 쉽게 만들고 나중에 업데이트하는 것을 훨씬 더 쉽게 만들 것이다.그들이 항상 이동 중에 그것을 할 수 있는 한 가지 "방향" 없이 변하는 오래된 프로젝트를 읽어보십시오. 여기서 그런 일은 일어나지 않을 겁니다.
'Programing' 카테고리의 다른 글
사용 중지 경고:태핑 가능.플러그인이 더 이상 사용되지 않음..hooks에 새 API를 대신 사용 (0) | 2022.04.02 |
---|---|
Redex 및 라우터 - 서버 렌더링으로 응답 (0) | 2022.04.02 |
화기장이란 무엇인가.분석웹 앱의 기본 로깅된 이벤트? (0) | 2022.04.01 |
이것은 "조기 귀국 후 실수로 리액션 훅을 호출했는가?"를 피하는 안전한 방법이다. (0) | 2022.04.01 |
대/소문자를 구분할 수 없는 값에 대한 대/소문자를 구분하지 않고 반환해서는 안 됨 (0) | 2022.04.01 |