Vuex 플러그인은 내부 구조를 수정하지 않고 Vuex의 핵심 기능을 확장하는 강력한 메커니즘을 제공합니다. 로깅, 지속성 또는 사용자 정의 미들웨어와 같은 기능을 추가 할 수있는 깨끗하고 체계적인 방법을 제공합니다. 플러그인을 사용하려면 vuex 스토어를 만들 때 plugins
옵션으로 전달합니다.
모든 돌연변이를 기록하는 플러그인의 간단한 예를 들어 보자.
<code class="javascript">// myPlugin.js export default function myPlugin (store) { store.subscribe((mutation, state) => { console.log('mutation:', mutation.type) console.log('payload:', mutation.payload) console.log('state:', state) }) } // main.js import Vue from 'vue' import Vuex from 'vuex' import myPlugin from './myPlugin' Vue.use(Vuex) const store = new Vuex.Store({ state: { count: 0 }, mutations: { increment (state) { state.count } }, plugins: [myPlugin] })</code>
이 예에서는 myPlugin.js
스토어 인스턴스를 인수로 취하는 함수를 내보내고 있습니다. 이 기능 내에서 우리는 store.subscribe
사용하여 돌연변이를 듣고 관련 정보를 콘솔에 로그인합니다. main.js
에서는 플러그인을 가져 와서 매장을 만들 때 plugins
어레이에 추가합니다. 이제 돌연변이가 커질 때마다 콘솔은 돌연변이 및 현재 상태에 대한 세부 사항을 표시합니다. 이것은 Vuex 플러그인을 만들고 사용하기위한 기본 패턴입니다. 보다 복잡한 플러그인은 비동기 작업을 통합하거나 외부 서비스와 상호 작용하거나 subscribe
기능 또는 store
개체가 제공하는 기타 저장소 내에서보다 정교한 논리를 구현할 수 있습니다.
Vuex 플러그인은 몇 가지 일반적인 시나리오에서 매우 중요합니다.
전적으로! 사용자 정의 vuex 플러그인 만들기는 간단합니다. 핵심은 플러그인의 구조를 이해하는 것입니다 : 스토어 인스턴스를 인수로 수신하는 함수. 이 기능 내에서는 사용자 정의 로직을 통합하기 위해 Store Object ( subscribe
, dispatch
, commit
, replaceState
, watch
, registerModule
, unregisterModule
)에서 제공하는 다양한 방법을 활용할 수 있습니다.
잘 설계된 플러그인은 모듈 식적이고 재사용 가능하며 다른 프로젝트에 대한 유지 관리 및 통합의 용이성을 보장하기 위해 최소한 의존성이 있어야합니다. 플러그인 및 내보내기 기능에 대해 명확하고 설명적인 이름을 사용하는 것을 고려하십시오.
Vuex 플러그인은 주로 Vuex 스토어 자체를 통해 VUE 응용 프로그램의 다른 부분과 상호 작용합니다. 매장을 우회하는 방식으로 VUE 구성 요소 또는 기타 모듈과 직접 상호 작용하지 않습니다. 대신 플러그인은 상점의 기능을 향상시켜 매장을 사용하는 응용 프로그램의 모든 부분에 도움이되는 방식으로 기능을 확장 할 수 있습니다.
예를 들어, 상점의 상태를 유지하는 플러그인은 구성 요소와의 명시 적 상호 작용없이 상태를 자동으로 저장하고로드합니다. 마찬가지로 로깅을 추가하는 플러그인은 로깅 기능을 명시 적으로 호출 할 수있는 구성 요소없이 이벤트를 자동으로 로그합니다. 플러그인이 액세스하는 상점의 이벤트 및 방법을 통해 상호 작용이 간접적으로 발생합니다. 이를 통해 우려가 명확하게 분리되어 응용 프로그램을보다 체계적이고 유지 관리 할 수 있습니다. 구성 요소는 여전히 $store.dispatch
, $store.commit
, $store.state
등을 사용하여 상점과 상호 작용하지만 플러그인은 이러한 동작의 기본 동작을 보강합니다.
위 내용은 Vuex 플러그인을 사용하여 기능을 확장하려면 어떻게합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!