programing

Vuex 돌연변이 대상이 주에서 찾는 대신 페이로드로 통과됨

prostudy 2022. 5. 20. 21:37
반응형

Vuex 돌연변이 대상이 주에서 찾는 대신 페이로드로 통과됨

vuex 상태가 다음과 같은 구조를 가지고 있다고 가정해 보자.

state: {
        houses: [{
            pk: 1,
            historicalName: 'Poo'
        }],
    },

그리고house국가로부터의 인스턴스(instance)는 그것을 구성요소에 소품으로 전달함으로써 사용된다.houses.vue템플릿:

<div><house v-for="hs in housesState" :house="hs"></house></div>

그럼 내가 이 분야들을 변이해야 할 때house이렇게 돌연변이를 쓰나?

[Types.mutations.SET_HISTORICAL_NAME]: (state, payload) => {
   state.houses.find(x => x.pk === payload.house.pk).historicalName = payload.historicalName
}

아니면 내가 그 예시를 통과할까?house구성 요소에서

this.$store.commit(Types.mutations.SET_HISTORICAL_NAME, {house: this.house, historicalName: 'Gold'})

어레이를 검색하지 않고 업데이트하시겠습니까?

[Types.mutations.SET_HISTORICAL_NAME]: (state, payload) => {
       payload.house.historicalName = payload.historicalName
}

두 번째 옵션이 주의 잠금을 유발하는가?돌연변이는 다른 이유로 동시에 호출될 수 있다.houses더 빠를까?매번 어레이를 검색하지 않는 것이 도움이 되겠지만 여기서는 그렇게 간단한지 잘 모르겠다.

하우스 데이터도 다른 컴포넌트(질문에 데이터 구조를 단순화했다)에서 사용되므로 저장만 할 수 있을 것 같지 않다.house로컬 구성 요소 수준에서

참조URL: https://stackoverflow.com/questions/51637633/vuex-mutation-target-passed-to-payload-instead-of-looking-for-it-in-the-state

반응형