Lazy Load & 404 Page - Tylung/vue-apuntes GitHub Wiki

El Lazyload nos ayuda a que el bundle inicial de la aplicación sea mas pequeño y que se carguen los componentes de manera independiente, es decir, que se carguen cuando sean necesarios.

Archivo: src/router/router.js

const routes = [
    // { path: '/', component: ListPage },
    // { path: '/about', component: AboutPage },
    // { path: '/id', component: PokemonPage },
    // { path: '/:pathMatch(.*)*', component: NoPageFound }, ❌
    { 
      path: '/', 
      component: () => import(/* webpackChunkName: "ListPage"*/ '@/modules/pokemon/pages/ListPage') ✔️
    },
    { 
      path: '/about', 
      component: () => import(/* webpackChunkName: "AboutPage"*/ '@/modules/pokemon/pages/AboutPage') 
    },
    { 
      path: '/id', 
      component: () => import(/* webpackChunkName: "PokemonPage"*/ '@/modules/pokemon/pages/PokemonPage')  
    },
   ...
  ]

Cuando se llame a cualquier componente, este se importara, mientras no se cargará ese archivo.

Siempre se debe importar con una función de flecha sino dará error! :fire:

  • El webpackChunkName es el nombre que tendra el archivo cuando se importe, sirve para identificar que archivos carga la aplicación
const routes = [
    ...
    { 
      path: '/:pathMatch(.*)*', 
      component: () => import(/* webpackChunkName: "NoFoundPage"*/ '@/modules/shared/pages/NoPageFound') 
    },
  ]

Para hacer una 404 Page, tenemos que poner esta expresion '/:pathMatch(.*)*', en el path de una de las rutas y cuando el url no coincida con ninguna de nuestras rutas, llamara al componente noPageFound