Vue: Fornece suporte de primeira classe para dividir a base de código em módulos

Criado em 4 jul. 2017  ·  4Comentários  ·  Fonte: vuejs/vue

Qual problema esse recurso resolve?

Vindo do Angular 2, um dos recursos que realmente sinto falta é o uso de módulos para dividir minha base de código em unidades lógicas. Tecnicamente, ainda posso fazer isso no Vue fornecendo o seguinte como um componente do roteador:

import Vue from 'vue';
import { routes } from './routes';

export const LazyModule: Vue.ComponentOptions<Vue> = {
  render: r => {
    console.log('rendering');
    return r('router-view');
  },
  created: function() {
    this.$router.addRoutes(routes);
  }
};

Isso funciona, mas acho que seria mais intuitivo se houvesse uma separação clara entre o que são um componente e um módulo Vue. Especificamente, um módulo não forneceria um método de renderização.

Qual é a aparência da API proposta?

Tem havido um bom trabalho nesse sentido aqui . Também testei meu exemplo anterior de "módulo" aqui .

No final das contas, acho que podemos esperar algum suporte básico no Vue e então permitir que o Vue Router e a Vuex o estendam.

Comentários muito úteis

@patrickhousley , você pode dar uma olhada em:
Componentes Vue Async
Carregamento lento do Vue-router
Módulos assíncronos Vuex (ainda não mesclados)

Tudo isso com ssr e pwa resulta em um mecanismo muito útil de divisão de código e alto desempenho. Eu sei que é muito, mas fica muito fácil de usar se você praticar.

Todos 4 comentários

@patrickhousley , Olá, não tenho experiência com Angular 2, você pode tentar descrever o que exatamente é um módulo e qual é o caso de uso de exemplo para isso?

IMO, em estruturas como Vue / React, a ideia é tentar pensar (quase) tudo de maneira Component . Portanto, prefiro compor componentes em vez de Module .

@jkzing Depois de olhar mais para isso, eu concordaria. Acho que o que estou realmente procurando pode ser resolvido aqui . Honestamente, eu realmente só quero uma maneira de dividir meu aplicativo em partes de maneira limpa. O roteador já pode fazer isso, mas apenas no nível do componente. As rotas ainda precisam ser carregadas estaticamente, tornando o carregamento lento de grandes partes de um aplicativo um pouco problemático.

@patrickhousley , você pode dar uma olhada em:
Componentes Vue Async
Carregamento lento do Vue-router
Módulos assíncronos Vuex (ainda não mesclados)

Tudo isso com ssr e pwa resulta em um mecanismo muito útil de divisão de código e alto desempenho. Eu sei que é muito, mas fica muito fácil de usar se você praticar.

Esta página foi útil?
0 / 5 - 0 avaliações