关于实现vue项目的路由懒加载,以及一个坑

2020-04-25  本文已影响0人  木头就是我呀

🤫 今天在实现SSR的时候,忽然想到可以实践一下vue-router的懒加载的机制,没想到跳进了一个坑,爬了半个小时才出来,所以记录一下,如果你看到这篇文章,希望你能避免跳进去,好,走起。

1. 废话少说,先看下官方文档,如果看不明白,可以继续看我写的例子。

路由懒加载的官方文档

2. 我的例子

import Router from 'vue-router'
import Vue from 'vue'

Vue.use(Router)

// 常规方法
import Main from './../components/Main'
import Detail from './../components/Detail'

export default new Router({
    mode: 'hash',
    routes: [
        {
            path: '/',
            component: Main // 常规方法
        },
        {
            path: '/detail',
            component: Detail // 常规方法
        }
    ]
})
import Router from 'vue-router'
import Vue from 'vue'

Vue.use(Router)

// 先别删
import Main from './../components/Main'
import Detail from './../components/Detail'

export default new Router({
    mode: 'hash',
    routes: [
        {
            path: '/',
            // node(commonJs)语法
            component: r => require.ensure([], () => r(require('./../components/Main.vue')), 'main1')
        },
        {
            path: '/detail',
            // es6(import)语法
            component: ()=> import(/* webpackChunkName: "test" */ './../components/Detail.vue')
        }
    ]
})
// vue.config.js
module.exports = {
    configureWebpack: {
        output: {
            chunkFilename: 'chunks/[name]-[chunkhash:8].js'
        }
    }
}
import Router from 'vue-router'
import Vue from 'vue'

Vue.use(Router)

// 把这两行删了!!!!!
import Main from './../components/Main'
import Detail from './../components/Detail'

export default new Router({
    mode: 'hash',
    routes: [
        {
            path: '/',
            // node语法
            component: r => require.ensure([], () => r(require('./../components/Main.vue')), 'main1')
        },
        {
            path: '/detail',
            // es6语法
            component: ()=>import(/* webpackChunkName: "test" */ './../components/Detail.vue')
        }
    ]
})

🤓 总结:这真的是一个不曾想到的坑,不过也好,早跳一下,以后就可以绕道走了。

上一篇下一篇

猜你喜欢

热点阅读