A razão para usar Vuex seu papel e uso

Primeiro, porque deve usar vuex

Exemplo 1.1 De acordo com os sentimentos intuitivos criança directo:

Neste ponto, tem 5 de controlo 12 345 1 3, em que o subconjunto é um subconjunto 2 4

 

 

1, quando os dados podem ser transferidos directamente para usar as mesmas de token 3 2 4 de dados pode ser transmitido directamente, mas um e 2 dados geradoras que necessita de utilizar a transmissão de 5-camada, desta vez um pouco de dificuldade, onde passado somente dois controles, mas imaginar há 10 controles precisam passá-lo?  

[Partilha estado cena entre componentes] 1,2

Para resolver problemas compartilhados entre múltiplas interfaces, gerenciamento de resposta unificada

  1. Login do usuário estado, nomes de usuários, avatares, localização e outros estado podem ser salvos
  2. Recolha de bens, carrinhos de compras e outros itens podem ser unificados [envio] antes de fechar
  3. Necessidade de informações de estado share

Dois, uso vuex

vuex 2.1 Instalação

  Na necessidade caminho de execução de usar  NPM instalar --save vuex instalação

2.2 loja premissa introdução

  • Criar um arquivo para armazenar o pacote em index.js vuex armazém no diretório de arquivos

      

  • [Index.js escrevendo uma árvore funcionário sugeriu estado único, apenas os dados armazenados em uma loja em]
    • Import plug
    • instale o bujão
    • Criar objeto
    • exportando objetos
//index.js
//
1. Import Plug- Vue de 'VUE' Import Import Vuex de 'vuex' // 2. Ligue Vue.use (Vuex) // 3. Criar objeto const = loja nova nova Vuex.Store ({ Estado: { // compartilhada dados Idade: 18 é }, mutações: { // métodos semelhantes procedimento de sincronização pode receber parâmetros de entrada = payload "obj | ARR | NUM incremento (Estado, payload) { state.age ++ ; } }, Acções: { // método assíncrono updateInfo (contexto) { retornar novo novo Promise ((Resolve, Rejeitar) => { o setTimeout (() => { context.commit ( 'INCREMENTO' ) Resolve () }, 1000 ) }) } }, getters: { // os dados após retornos de processamento semelhantes calculado doubleage {(Estado) de retorno da função (Idade) { return Idade ++ ; } } }, módulos: { // módulo definição A: { Estado: {}, mutações: {}, Ações: {}, getters: {} } } }) // 3. derivando módulo de armazenamento de Exportação padrão loja

 

 

A figura abaixo mostra o oficial dá processo de execução vuex

  • dados do estado modificar apenas através de mutação
  • A operação assíncrona pode, portanto, ser posta em posição sobre a acção da acção do método de mutação estado novamente modificada
  •  Note-se que os dados só podem modificar as propriedades existentes vuex

    não pode usar diretamente um state.info convencional [ 'name'] = cc é adicionado a esta não-responsivos

    Apenas Vue.set (state.info, 'nome', 'cc') em resposta a esta fórmula

 

utilização 2.3 página

  • Quando a serem utilizados na primeira etapa vêm main.js importação
    • Definir Vue.prototype equivalente. $ Loja = armazenar todas as páginas atributos adicionados podem ser utilizados no protótipo  
//main.js
importar Vue de 'vue' importação App de './App.vue' router de importação de './router/index.js' loja de importação de ' ./store/index.js' Vue.config.productionTip = falsa novo Vue ({ render: h => h (App), router, loja }). $ mount ( '#app')
  •  usos página vue
    • notas
      • Modificar dados do estado apenas por meio de mutação! ! ! !
      • mutação Method Invocation na necessidade de usar cometer
      • Chamar o método de envio acções necessárias
      • Jie duas maneiras de chamar a loja em mutação e ações
        • 1.  ( 'nome de função', parâmetro de carga) recebeu carga útil contém apenas a carga []
        • 2. ({

              digite: 'nome da função' 

              payload1: 'parâmetro de carga 1',

              payload2: 'parâmetro de carga 2'

            })                                           [Obj] carga recebida contém a totalidade

//test.vue
<template> <div id = "test"> <h1> {{$ store.state.age}} </ h1>       <! -直接使用estado数据-> <button @ click =" adicionar "> </ button> <h1> {{$ store.getters.doubleage}} </ h1> <! -调用getters中函数-> <button @ clique =" update "> </ button> </ div> </ template> <script> exportação padrão { métodos: { add () { // 调用mutações中函数 deixar payload = 2 // . presente $ store.commit ( 'incremento',payload) no fundo deste método direto de receber carga útil a este . $ store.commit ({ // Este método recebe todo o obj objeto no fundo {type, payload}  digite: 'INCREMENTO' , payload }) }, Update () { a este .. $ store.dispatch ( 'updateInfo') os então (RES => { // uso de função de chamada de despacho ou seja, ações operação assíncrona em console.log (res ) // quando prometem para manipular objetos retornados }) } } } </ script> <style> </ style>

 

Acho que você gosta

Origin www.cnblogs.com/cc123nice/p/12603649.html
Recomendado
Clasificación