programing

내 앱 없이 VueX를 사용하는 구성 요소도 VueX를 사용할 수 있는가?

prostudy 2022. 4. 29. 23:12
반응형

내 앱 없이 VueX를 사용하는 구성 요소도 VueX를 사용할 수 있는가?

내 Vue 앱에서 이 구성 요소를 사용하고 싶다. https://commbocc.github.io/hcflgov-vue-esri-search/docs/

그러나 그것은 오류를 던지고 있다.TypeError: "t.$store is undefined"

원인은 VueX를 사용하지 않기 때문에 구성 요소가 찾고 있는 VueX 스토어를 초기화하지 못하고 있는 것 같다.

일반적으로 내 앱이 그렇지 않으면 VueX를 사용하는 구성 요소를 사용할 수 있는가?이 일을 해결할 방법이 없을까?나는 VueX를 통합하는 데 수반되는 노력이 너무 높을 것이라고 생각한다.

네, 가능합니다.대부분의 경우 사람들은 vue-plugin을 만든다.그럴 때는 이렇게 설치하면 된다.npm install myCoolPlugin앱에서 가져온 파일을 사용하십시오.import myCoolPlugin from 'myCoolPlugin'플러그인에 따라 vuex와 같이 전역적으로 설치할 수 있으며,

Vue.use(myCoolPlugin)

또는 플러그인의 구성 요소를 사용할 위치에서 직접 원하는 대로 명시적으로 사용할 수 있다.

import {coolButton, coolInput} from 'myCoolPlugin';
export default {
    name: 'home-page',
    components: [coolButton, coolInput],
    ...
}

플러그인에도 패키지가 있다.플러그인이 의존하는 등에 대한 메타데이터를 저장하는 json 파일(앱과 동일)당신이 할 때npm i myCoolPlugin, npm은 플러그인의 패키지를 확인한다.플러그인이 의존하는 타사 패키지를 확인한 다음 앱의 node_properties에 계속 설치하기 위한 json 파일.

구성 요소 "esri-search"의 문제는 이 구성 요소가 패키지/플러그인으로 설정되지 않았다는 것이다.따라서 vuex, lodash 등 필요한 종속성을 앱에 설치하지 않는다.

이 때문에 이 구성 요소를 앱에 복사하면 플러그인이 아니라 앱이 되기 때문에 앱에 대한 종속성으로 vuex를 설치해야 했던 것이다.

이게 말이 돼?:)

이 경우 나는 다음과 같이 오류를 해결할 수 있었던 것 같다.

npm install --save vuex

main.js:

import VueX from 'vuex';
Vue.use(VueX);

그러나 이것은 항상 이것이 사실인지 아닌지에 대한 완전한 해답을 주지 못하므로, 더 나은 해답을 얻기 위해 열려 있다.

참조URL: https://stackoverflow.com/questions/55643509/can-i-use-a-component-that-uses-vuex-without-my-app-also-using-vuex

반응형