Vue路由懒加载(history模式)
2017/12/30
当打包构建应用时,Javascript 包会变得非常大,影响页面加载。如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更加高效了。
结合 Vue 的异步组件和 Webpack 的代码分割功能,轻松实现路由组件的懒加载。
具体实现如下:
// router.js
import Vue from "vue";
import VueRouter from "vue-router";
Vue.use(VueRouter);
export default new VueRouter({
mode: "history",
routes: [
{
path: "/home",
name: "home",
component: () => import(/* webpackChunkName: "home" */ './Home.vue');
},
{
path: "/ahout",
name: "about",
component: () => import(/* webpackChunkName: "about" */ './About.vue');
}
]
});
// .babelrc
{
plugins: [ "@babel/plugin-syntax-dynamic-import" ]
}
开发阶段webpack配置
// webpack.dev.config.js
module.exports = {
// ...
devServer: {
historyApiFallback: true
}
}
生产环境nginx配置
location / {
try_files $uri $uri/ /index.html;
}