Vue: Brinde soporte de primera clase para dividir la base del código en módulos

Creado en 4 jul. 2017  ·  4Comentarios  ·  Fuente: vuejs/vue

¿Qué problema resuelve esta función?

Viniendo de Angular 2, una de las características que realmente extraño es el uso de módulos para dividir mi base de código en unidades lógicas. Técnicamente, todavía puedo hacer esto en Vue proporcionando lo siguiente como un componente del enrutador:

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);
  }
};

Esto funciona, pero creo que sería más intuitivo si hubiera una separación clara entre lo que son un Componente y un Módulo de Vue. Específicamente, un módulo no proporcionaría un método de renderizado.

¿Cómo se ve la API propuesta?

Ha habido un buen trabajo con este fin aquí . También he estado probando mi ejemplo anterior de "módulo" aquí .

En última instancia, creo que podríamos esperar un soporte básico en Vue y luego permitir que Vue Router y Vuex lo extiendan.

Comentario más útil

@patrickhousley , puedes echarle un vistazo a:
Componentes de Vue Async
Carga diferida del router Vue
Módulos asíncronos de Vuex (aún no fusionados)

Todo lo relacionado con SSR y PWA resultados en un mecanismo muy útil de división de código y de alto rendimiento. Sé que es mucho, pero se vuelve muy fácil de usar si se practica.

Todos 4 comentarios

@patrickhousley , Hola, no tengo experiencia con Angular 2, ¿podría intentar describir qué es exactamente un módulo y cuál es un ejemplo de caso de uso para eso?

En mi opinión, en un marco como Vue / React, la idea es tratar de pensar (casi) todo de la manera Component . Así que prefiero componer componentes en lugar de Module .

@jkzing Después de mirar esto más, estaría de acuerdo. Creo que lo que realmente estoy buscando podría manejarse aquí . Honestamente, solo quiero una forma de dividir limpiamente mi aplicación en pedazos. El enrutador ya puede hacer esto, pero solo a nivel de componente. Las rutas aún deben cargarse estáticamente, lo que hace que la carga diferida de grandes partes de una aplicación sea un poco problemática.

@patrickhousley , puedes echarle un vistazo a:
Componentes de Vue Async
Carga diferida del router Vue
Módulos asíncronos de Vuex (aún no fusionados)

Todo lo relacionado con SSR y PWA resultados en un mecanismo muy útil de división de código y de alto rendimiento. Sé que es mucho, pero se vuelve muy fácil de usar si se practica.

¿Fue útil esta página
0 / 5 - 0 calificaciones