【发布时间】:2018-04-20 14:22:06
【问题描述】:
我有一个路由器设置如下的 vue 应用:
import index from './components/index.vue';
import http404 from './components/http404.vue';
// module lazy-loading
const panda= () => import(/* webpackChunkName: "group-panda" */ "./components/panda/panda.vue");
// ...
export const appRoute = [
{
path: "",
name: "root",
redirect: '/index'
},
{
path: "/index",
name: "index",
component: index
},
{
path: "/panda",
name: "panda",
component: panda
},
//...
{
path: "**",
name: "http404",
component: http404
}
];
所以 panda 模块是延迟加载的。但是,当我导航到panda 页面时,App.vue 的mounted() 生命周期中this.$route.path 的console.log() 仅输出
"/"
而不是
“/熊猫”
但索引页面效果很好,它显示准确
“/索引”
正如预期的那样。
那么,当页面初始加载时,Vue 路由器如何正确获取延迟加载页面的当前路径?我错过了什么吗?
编辑:
但是,它可以在 Webpack 热重载后捕获正确的路径。它在第一次访问panda 时捕获“/”,但是在我更改源代码中的某些内容后,webpack-dev-server 热重载,然后它得到“/panda”。
所以我猜这与 Vue 生命周期有关。
【问题讨论】:
-
这个问题是很久以前问的了,最近的vue.js版本对webpack延迟加载的支持还是不错的,看来这已经不是问题了。
标签: javascript vue.js vue-router