programing

어려운 컴포넌트 1개에 대해 로컬 vuex를 생성할 수 있습니까?

copysource 2022. 8. 27. 23:28
반응형

어려운 컴포넌트 1개에 대해 로컬 vuex를 생성할 수 있습니까?

vue2 질문
같은 구조의 어려운 컴포넌트가 많다.

PersonCard
   components
     PersonForm
       components (many components)
       index.vue
     PersonImage
       components (many components)
       index.vue
   index.vue

vuex 인스턴스를 글로벌이 아닌 이 컴포넌트 중 하나에 대해 생성하려고 합니다.PersonCard 폴더(컴포넌트의 루트 포인트)의 index.vue에서 vuex를 생성하고 컴포넌트가 파괴되면 파기합니다.

가능합니까?

vuex 인스턴스 내에서 동적 모듈을 사용할 수 있습니다.다음은 이 기술에 대한 링크입니다.vuex 다이내믹모듈

그러나 예를 들어 관리 패널이 있는 웹 사이트가 있고 다음과 같은 vuex 저장소를 js 파일에 생성할 수 있도록 관리 패널에서만 상태 관리 코드를 사용할 필요가 없다고 가정해 보십시오.

// store/admin.js
export default {
  namespaces: true,

  modules: {},

  state: () => ({}),

  mutations: {},

  actions: {},

  getters: {},
};

그런 다음 admin 루트 페이지 또는 컴포넌트에서 이 파일을 Import하고 다음을 수행합니다.

import adminStore from '@/store/admin;
...
beforeCreate() {
  const hasModule = this.$store.hasModule('admin'); // to make sure you don't register a module that already exists
  if (!hasModule) this.$store.registerModule('admin', adminStore);
},
beforeDestroy() {
  this.$store.unregisterModule('admin'); // removes the admin module when this component destroys
}

이 컴포넌트가 파괴되지 않는 한 다음과 같은 이름 간격을 둔 모듈을 사용하여 모든 vuex 기능에 액세스할 수 있습니다.

this.$store.dispatch('admin/someActionFromAdminModule')

다이내믹 모듈용 vuex 문서

언급URL : https://stackoverflow.com/questions/68836340/can-i-create-local-vuex-for-one-difficult-component

반응형