在Vue應(yīng)用程序中,store是管理應(yīng)用程序狀態(tài)的中央存儲庫。在全局模式下,store會在應(yīng)用程序的所有組件之間共享,但是有時(shí)情況下,我們不希望使用全局模式,而是只想在一些特定組件中使用store。為了實(shí)現(xiàn)在一個(gè)組件中使用store的功能,我們就需要使用Vue store掛在局部的功能。
我們可以使用Vue的提供者/注入機(jī)制來將store掛在到一個(gè)組件的上下文中。首先,讓我們創(chuàng)建一個(gè)store實(shí)例:
import Vuex from 'vuex' export const store = new Vuex.Store({ // ... })
現(xiàn)在我們需要將store實(shí)例注入到組件中。首先,在根Vue實(shí)例中,我們需要將在全局注冊的組件實(shí)例包裹在vue-router標(biāo)簽中。然后我們可以通過在組件的inject選項(xiàng)中注冊store實(shí)例來將store注入到組件中:
import { store } from './store' Vue.component('app', { store, // ... })
現(xiàn)在,我們可以在該組件中訪問store實(shí)例。在組件的計(jì)算屬性或方法中,我們可以使用this.$store來訪問store。
此外,我們還可以使用Vue Mixins來使用store。Mixins允許我們將一組選項(xiàng)合并到組件中,并且可以在多個(gè)組件之間重復(fù)使用。為了使用store,我們需要創(chuàng)建一個(gè)mixin,該mixin包含store實(shí)例:
import { mapGetters } from 'vuex' export const storeMixin = { computed: { ...mapGetters([ 'somethingFromStore' ]) } }
現(xiàn)在,我們可以在組件中使用上述mixin:
import { storeMixin } from './storeMixin' export default { mixins: [storeMixin], // ... }
這樣,我們就可以在組件中訪問store中的內(nèi)容,而不必使用全局模式。
總之,將store掛在到局部組件中是一個(gè)非常有用的功能,它允許我們在不使用全球模式的情況下使用store。我們可以使用Vue的提供者/注入機(jī)制或Mixins來使用store。學(xué)會使用這些技巧,將使我們的代碼更加優(yōu)雅和簡潔。