vue-codigos icon indicating copy to clipboard operation
vue-codigos copied to clipboard

Problemas no capítulo 6 - Vuex e Flux

Open vitoravale opened this issue 7 years ago • 7 comments

@danielschmitz estou com a versão publicada em 2017-11-01 e notei dois pontos nesse capítulo, no item 6.5 (Exemplo Simples) na parte incluindo Vuex não foi mostrado como instalar o mesmo, tão pouco qual versão utilizada, uma simples pesquisada pelo mesmo e encontramos na documentação como proceder para instalar, mas seria interessante estar no livro para todos.

Outro ponto foi, da forma que ocorreu a implementação do vuex para o contador não funcionou em meu projeto com a seguinte configuração:

{
  "dependencies": {
    "vue": "2.0.1",
    "vuex": "3.0.1"
  }
}

Dei uma olhada no git deles e encontrei um exemplo de contador e somente seguindo este modelo de implementação que consegui fazer funcionar, gostaria de saber se o modelo que está no livro está defasado para a versão 3 do vuex, se sim, seria interessante uma atualizada no livro deste ponto.

vitoravale avatar Dec 29 '17 00:12 vitoravale

Olá, tudo bem?

a parte que mostra como instalar está no livro, veja:

deepinscreenshot_select-area_20171229142418

danielschmitz avatar Dec 29 '17 16:12 danielschmitz

Desculpa foi vacilo meu, realmente enquanto tava lendo devo ter passado batido pela instalação do vuex, segui direto pro npm i. Mas a outra parte realmente não consegui fazer da forma que estava lá, precisei fazer alguns ajustes:

Carregar a store direto no main.js ao invés do App.vue captura de tela 2017-12-29 as 15 12 17

Carregar os actions e getters ao instanciar o Vuex.Store junto ao state e mutations: captura de tela 2017-12-29 as 15 12 00

Usar o mapGetters do vuex para usar no Display.vue: captura de tela 2017-12-29 as 15 12 12

Usar o mapActions do vuex para usar no Increment.vue: captura de tela 2017-12-29 as 15 12 07

vitoravale avatar Dec 29 '17 17:12 vitoravale

vou dar uma olhada na forma como está

esse editor é qual?

danielschmitz avatar Dec 29 '17 18:12 danielschmitz

Na sequência, a parte de módulos (vuex-modules) também necessitou de alguns ajustes para o correto funcionamento:

imagem_editada

App.vue

  • Mapeamento via namespace para

modules/login/index.js

  • exportar com a opção namespaced habilitada
  • Utilização via objeto global do Vue (Vue.http) ao invés de this.$http na action
  • Utilizar o response.body, pois não existe na versão atual o http.response.data

Ps: actions e getters mantidas no mesmo arquivo para diminuir o número de arquivos que eu estva lidando e não precisar fazer os imports no próprio index.js, pois nesta versão do vuex as mesmas devem ser exportadas junto do módulo.

vitoravale avatar Dec 30 '17 01:12 vitoravale

Um exemplo final juntando a parte de login e products, o state do getter quando está com a opção namespace é diretamente do módulo, o que tornou desnecessário especificar o nome do módulo como está nos getters do src/modules/product/getters.js captura de tela 2017-12-30 as 15 19 45

vitoravale avatar Dec 30 '17 17:12 vitoravale

Uma dúvida, a parte destacada seria dessa forma mesmo ou seria: use Somente? imagem_editada_002

vitoravale avatar Dec 30 '17 17:12 vitoravale