vue-router使用按需加载后无法获取$route信息了

这是我的路由配置文件

const Home = resolve => require(['../pages/home.vue'], resolve)
export default [
    {
        path:'/home',       
        component: Home,
    }
]

发现这样以后无法获取$route信息了,(比如http://localhost:8080/home?a=1234这样的话$route.query是没有东西的)
图片描述

如果是正常的就可以获取到

import Home from '../pages/home.vue'

有解决过的小伙伴吗?

阅读 17.2k
10 个回答

我是放在created的时候调用的,后来发现这个问题引响并不大,created第一次进入会调用,之后每次路由变化,同组件的话,created不会再触发,取决于路由变化的时候,是不是显示同一个组件。
就是created的时候获取不到,之后都能获取到了。

新手上路,请多包涵

watch: {

      '$route' (to, from){
          console.log(to);
      }
  }

可能是$route还没更新。

mounted () {
  console.log(this.$route)
  setTimeout(() => {
    console.log(this.$route)
  }, 1000)
}

clipboard.png

你截图的变量不就是$route 本身吗

const Home=()=>import(/*webpackChunkName: "Home"*/'../pages/home.vue');

你的路由地址都还是/不是/home

新手上路,请多包涵

题主这个问题解决了吗,我也遇到这个问题了。求告知

新手上路,请多包涵

我也遇到类似的问题,
在app.vue 里面的mounted()里面取不到$route的值
在其子路由里面是没问题的

不知道如何理解这个问题,是不是app.vue里面是不能取$route的?是不是app.vue挂载时,$route还没有初始化?

新手上路,请多包涵

我也遇到了,你应该用了异步加载组件了,

const Home=()=>import(/*webpackChunkName: "Home"*/'../pages/home.vue');
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题