반응형
vuex: 비동기 함수에서 기본값 설정
다음과 같은 매장이 있습니다.
export const store = new Vuex.Store({
state: {
someProp: someAsyncFn().then(res => res),
...
},
...
})
왠지...someProp
값이 해결되기를 기다리는 것이 아닙니다.이게 나쁜 관행인가요?빈 개체를 기본값으로 설정하고 로드 시 변환을 통해 상태를 업데이트해야 합니까?
다음과 같이 해야 합니다.
export const store = new Vuex.Store({
state: {
someProp: null
...
},
mutations:{
initializeSomeProp: (state, payload) => {
state.someProp = payload;
}
},
actions:{
asyncSomeProp: ({commit}) => {
someAsyncFn().then(res => commit('initializeSomeProp', res))
}
}
})
비동기 기능은 액션에 의해 처리되어야 합니다.이 액션을 사용할 수 있습니다.asyncSomeProp
돌연변이를 저지르고initializeSomeOrop
을 통과함으로써res
payload 파라미터로서 비동기 콜백으로 취득합니다.
그 후 를 초기화하려면someProp
일부 컴포넌트에서는, 그 후, 그 컴포넌트의asyncSomeProp
다음과 같이 해당 컴포넌트의 생성된 라이프 사이클 후크에서 액션을 수행합니다.
created(){
this.$store.dispatch('asyncSomeProp');
}
언급URL : https://stackoverflow.com/questions/44304155/vuex-set-default-values-from-async-function
반응형
'programing' 카테고리의 다른 글
구조에서 기능 정의 (0) | 2022.08.11 |
---|---|
구조에서는 하나의 어레이 필드를 사용하여 다른 어레이 필드에 액세스하는 것이 합법입니까? (0) | 2022.08.11 |
CMake를 사용하여 여러 정적 라이브러리를 하나로 결합 (0) | 2022.08.10 |
모달 Bootstrap-vue를 사용하여 백그라운드에서 이벤트 클릭 가져오기 (0) | 2022.08.10 |
정의되지 않은 속성 'length'를 읽을 수 없습니다." (0) | 2022.08.10 |