programing

Vuex: 구성 요소에서 직접 작업 건너뛰기 및 돌연변이 커밋

prostudy 2022. 5. 17. 21:52
반응형

Vuex: 구성 요소에서 직접 작업 건너뛰기 및 돌연변이 커밋

vue.js 앱에서 vuex를 상태 관리 저장소로 사용하는 경우 vuex에서 속성 값을 간단히 변경하면 된다.이를 위해 두 가지 방법을 따를 수 있다.

  1. 는 급파하다.action방법은 그 이상을 책임 진다.mutation결국 상태를 변화시킬 것이다.

  2. 두번째 메서드는을 저지르는 것이다.mutation바로 성분과 돌연변이 메서드에서 다음 상태를 변화시킬 것이다.

현재 나는 다음과 같은 첫 번째 방법을 사용하고 있다.

구성 요소:

this.$store.dispatch('updateNotice', 'This is some notice')

액션에서:

updateNotice ({state, getters, commit}, payload) { commit('UPDATE_NOTICE', payload) }

돌연변이:

UPDATE_NOTICE (state, payload) { state.notice = payload }

As you might have noticed, I'm using theaction다른 논리 또는 비동기 기능 없이 단일 돌연변이를 수행하는 방법.

제 질문은, 이 경우에는, 직접 기기 자체에서 변이를 저지르지 않을까 하는 것입니다.가장 좋은 연습은?를 사용하기 때문에action이 단순한 경우에 방법이 구체적인 목적을 장황한 것 같다.

내가 항상 어떠한 이유가 있는가.commit구성 요소에서 행동?결국,에서 vuex은...mapMutations()어떤 이유가 존재할 생각은 없다.

너의 경우에 직접 부품을 사용하여에서 돌연변이는 저지르기 위해 괜찮을 것이다....mapMutations또는$store사례.

네가 최선의 관행을 물었다, 행동의 존재 이유로는 Asynchronicity.반면 전화 할 이러한 반면에 행동할 수 있는, 비동길 수 없다.$store.commit한 부품에 바로 이런 동기 사건이었지만, 당신이 부를 때.dispatch그 커밋 비동기적으로 액션 블록에 돌연변이와 달리 취급할 수 있다.

따라서 최상의 방법은 비동기적으로 처리해야 할 때 액션을 사용하여 상태를 수정하여 커밋하는 것이다. 이러한 경우 상태 변경을 커밋하기 전에 API 호출을 수행해야 한다고 말한다.

참조URL: https://stackoverflow.com/questions/49981000/vuex-skipping-action-and-committing-mutation-directly-from-component

반응형