vuex 스토어는 setTimeout 이후에만 사용할 수 있는 이유는 무엇입니까?
vuex 스토어를 가져오는 lib가 있습니다.
import {store} from "./index"
그 밖에index
다음과 같은 일정한 내보내기가 파일에 있습니다.
export const store = new Vuex.Store({ ...
내가 가져올 파일에서, 나는 가져오기 후에 상점에서 무언가를 사용하고 싶었지만,store
정의되지 않았습니다.
내 스토어 액세스를 setTimeout으로 포장했다면 다음과 같습니다.
setTimeout(()=>{
// use store normally now..
},0)
그건 효과가 있다.
왜죠? 저는 이것이 Vuex에만 국한된 것이 아니라고 생각하지만 왜 그런 일이 일어나는지 모르겠습니다.
이것은 아마도 순환 의존성의 경우일 것입니다.순환 종속성은 웹 팩에서 컴파일되지만 런타임에 버그가 발생합니다.
파일이 있다고 가정할 때A
그리고.B
그리고 디프 체인은 마치.A -> B -> A
그 때에B
가져오려고 합니다.A
아직 할 필요가 없습니다.export
내용물(왜냐하면)import
그렇지 않은 문 앞에 문이 표시됩니다.import
진술).
그렇게import default ./A
부터B
즉시 돌아오다.undefined
.
그래서 둘 중 하나: 만들기B
다음으로 호출되는 함수를 내보냅니다.A
내보내기를 호출하거나 모듈을 만듭니다.C
그 둘 다A
그리고.B
어떻게든 순환 의존성을 해결하는 데 의존합니다.
물건을 잘못 싣거나 설정이 좀 잘못된 것 같습니다.
스토어를 Vue 인스턴스에 삽입해보고 모든 하위 구성 요소에서 사용할 수 있다고 가정하면 됩니다.
main.js
import {store} from "./index"
new Vue({
el: '#app',
store,
render: h => h(App)
})
이제 모든 하위 구성 요소에서 다음을 통해 스토어에 액세스할 수 있습니다.this.$store
언급URL : https://stackoverflow.com/questions/49238467/why-is-vuex-store-only-available-after-settimeout
'sourcetip' 카테고리의 다른 글
Microsoft T-SQL에서 Oracle SQL로 변환 (0) | 2023.06.12 |
---|---|
Python ValueError: 값이 너무 많아 압축을 풀 수 없습니다. (0) | 2023.06.07 |
C에서 "포장된" 구조는 무엇입니까? (0) | 2023.06.07 |
Makefile:1: *** 구분 기호가 없습니다.이제 그만 (0) | 2023.06.07 |
python dict.update()가 개체를 반환하지 않는 이유는 무엇입니까? (0) | 2023.06.07 |