# Referência de Api ### Vuex.Store ``` js import Vuex from 'vuex' const store = new Vuex.Store({ ...options }) ``` ### Vuex.Store Opções do Construtor - **state** - type: `Object | Function` O objeto raiz de estado para o _store_ Vuex. [Detalhes](state.md) Se você passar uma função que retorna um objeto, o objeto retornado é usado como o estado da raiz. Isso é útil quando você deseja reutilizar o objeto de estado, especialmente para reutilização de módulos. [Detalhes](modules.md#reutilização-do-módulo) - **mutações** - type: `{ [type: string]: Function }` Registra mutações no _store_. A função do manipulador sempre recebe `estado` como o 1º argumento (será o estado local do módulo se definido em um módulo) e receberá um 2º argumento `payload` se houver um. [Detalhes](mutations.md) - **ações** - type: `{ [type: string]: Function }` Registra ações no _store_. A função do manipulador recebe um objeto `context` que expõe as seguintes propriedades: ``` js { state, // o mesmo que `store.state`, ou estado local se estiver em módulos rootState, // o mesmo que `store.state`, apenas em módulos commit, // o mesmo que `store.commit` dispatch, // o mesmo que `store.dispatch` getters, // o mesmo que `store.getters`, ou com getters locais se estiver em módulos rootGetters // o mesmo que `store.getters`, apenas em módulos } ``` [Detalhes](actions.md) - **_getters_** - type: `{ [key: string]: Function }` Registra _getters_ no _store_. A função _getter_ recebe os seguintes argumentos: ``` state, // será o estado local do módulo, se definido em um módulo. getters // o mesmo que `store.getters` ``` Especifique quando definido em um módulo ``` state, // será o estado local do módulo, se definido em um módulo. getters, // Módulo getters locais do módulo atual rootState, // estado global rootGetters // todos os getters ``` Os _getters_ registrados estão expostos em `store.getters`. [Detalhes](getters.md) - **módulos** - type: `Object` Um objeto contendo sub módulos a serem incorporados no _store_, de forma que: ``` js { key: { state, namespaced?, mutations?, actions?, getters?, modules? }, ... } ``` Cada módulo pode conter "estado" e "mutações" semelhantes às opções raiz. O estado de um módulo será anexado ao estado da raiz do _store_ usando a chave do módulo. As mutações e _getters_ de um módulo receberão apenas o estado local do módulo como o 1º argumento em vez do estado da raiz e as ações do módulo `context.state` também apontarão para o estado local. [Detalhes](modules.md) - **plugins** - type: `Array` Um array de funções de plugin a serem aplicadas no _store_. O plugin simplesmente recebe o _store_ como o único argumento e pode ouvir mutações (para persistência de dados de saída, log ou depuração) ou mutações de despacho (para dados de entrada, por exemplo, websockets ou observáveis). [Detalhes](plugins.md) - **strict** - type: `Boolean` - default: `false` Força o _store_ Vuex em modo estrito. No modo estrito, qualquer mutação ao estado do Vuex fora dos manipuladores de mutação acusará um erro. [Detalhes](strict.md) ### Vuex.Store Propriedades da instância - **_state_** - type: `Object` O estado raiz. Apenas leitura. - **_getters_** - type: `Object` Expõe os _getters_ registrados. Apenas leitura. ### Vuex.Store Métodos da Instância - **`commit(type: string, payload?: any, options?: Object) | commit(mutation: Object, options?: Object)`** Confirma uma mutação. `options` pode ter `root: true` que permite confirmar mutações da raiz em [módulos namespaced](modules.md#namespacing). [Detalhes](mutations.md) - **`dispatch(type: string, payload?: any, options?: Object) | dispatch(action: Object, options?: Object)`** Despacha uma ação. `options` pode ter `root: true` que permite enviar ações para raiz em [módulos namespaced](modules.md#namespacing). Retorna Promise que resolve todos os manipuladores de ação acionados. [Detalhes](actions.md) - **`replaceState(state: Object)`** Substitua o estado da raiz do _store_. Use isso apenas para fins de _hydration_ / _time-travel_. - **`watch(getter: Function, cb: Function, options?: Object)`** Visualiza de forma reativa um valor de retorno da função _getter_ e chama o callback para o retorno de chamada quando o valor mudar. O _getter_ recebe o estado do _store_ como o 1º argumento e os _getters_ como o 2º argumento. Aceita um objeto de opções opcional que leva as mesmas opções que o método `vm. $ Watch` do Vue. Para parar de visualizar, chame para a função do manipulador retornada. - **`subscribe(handler: Function)`** Assina as mutações do _store_. O `handler` é chamado após cada mutação e recebe o descritor de mutação e o estado pós-mutação como argumentos: ``` js store.subscribe((mutation, state) => { console.log(mutation.type) console.log(mutation.payload) }) ``` Usado com mais frequência em plugins. [Detalhes](plugins.md) - **`subscribeAction(handler: Function)`** > Novo em 2.5.0 Assina as ações do _store_. O `handler` é chamado para cada ação despachada e recebe o descritor de ação e o estado atual do _store_ como argumentos: ``` js store.subscribeAction((action, state) => { console.log(action.type) console.log(action.payload) }) ``` Usado com mais frequência em plugins. [Detalhes](plugins.md) - **`registerModule(path: string | Array, module: Module, options?: Object)`** Registra um módulo dinâmico. [Detalhes](modules.md#registro-de-módulo-dinâmico) `options` pode ter `preserveState: true` que permite preservar o estado anterior. Util para renderização server-side. - **`unregisterModule(path: string | Array)`** Cancela o registro de um módulo dinâmico. [Detalhes](modules.md#registro-de-módulo-dinâmico) - **`hotUpdate(newOptions: Object)`** Faz Hot swap de novas ações e mutações. [Detalhes](hot-reload.md) ### Métodos Auxiliares dos Componentes - **`mapState(namespace?: string, map: Array | Object): Object`** Cria componentes computadas de opções que retornam a subárvore do _store_ Vuex. [Detalhes](state.md#o-auxiliar-mapstate) O 1º argumento pode ser opcionalmente uma _String_ com _namespace_. [Detalhes](modules.md#usando-métodos-auxiliares-com-namespace) - **`mapGetters(namespace?: string, map: Array | Object): Object`** Criar opções computadas do componente que retornam o valor avaliado de um _getter_. [Detalhes](getters.md#o-auxiliar-mapgetters) O 1º argumento pode ser opcionalmente uma _String_ com _namespace_. [Detalhes](modules.md#usando-métodos-auxiliares-com-namespace) - **`mapActions(namespace?: string, map: Array | Object): Object`** Cria um componente com métodos e opções que despacham uma ação. [Detalhes](actions.md#ações-de-despacho-em-componentes) O 1º argumento pode ser opcionalmente uma _String_ com _namespace_. [Detalhes](modules.md#usando-métodos-auxiliares-com-namespace) - **`mapMutations(namespace?: string, map: Array | Object): Object`** Cria um componente com métodos e opções que confirmam uma mutação. [Detalhes](mutations.md#fazendo-commit-de-mutações-em-componente) O 1º argumento pode ser opcionalmente uma _String_ com _namespace_. [Detalhes](modules.md#usando-métodos-auxiliares-com-namespace) - **`createNamespacedHelpers(namespace: string): Object`** Cria um componente _namespaced_ dos métodos auxiliares. O objeto retornado possui _mapState_, _mapGetters_, _mapActions_ e _mapMutations_, que estão conectados com o dado _namespace_. [Detalhes](modules.md#usando-métodos-auxiliares-com-namespace)