vue 组件无法从 vue-router 获取 this.$router

Posted

技术标签:

【中文标题】vue 组件无法从 vue-router 获取 this.$router【英文标题】:vue component can not get this.$router from vue-router 【发布时间】:2017-05-21 00:24:41 【问题描述】:

Vue组件获取不到this.$router,但在App组件中获取到this.$route,会是什么问题?

import Vue from 'vue'
import VueRouter from 'vue-router'
import App from './App.vue'
import store from './store'

import FeedView from './views/FeedView.vue'
import LoginView from './views/LoginView.vue'

Vue.use(VueRouter)
Vue.config.devtools = true

const router = new VueRouter(
  mode: 'history',
  base: __dirname,
  routes: [
     path: '/', component: FeedView ,
     path: '/login', component: LoginView ,
  ]
)

new Vue(
  router,
  store,
  el: '#app',
  render: h => h(App)
)

capture image of vue-devtools

【问题讨论】:

【参考方案1】:

vue-router 文档中有明确说明:https://router.vuejs.org/en/api/route-object.html

路由对象可以在多个地方找到: 像 this.$route 这样的内部组件 内部 $route 观察者回调 作为调用router.match(location)的返回值

如果你想使用例如router.push(),根据你的代码,你肯定可以使用this.$router.push()

【讨论】:

以上是关于vue 组件无法从 vue-router 获取 this.$router的主要内容,如果未能解决你的问题,请参考以下文章

无法使用vue-router从root Vue实例获取数据

vue-router:无法解析异步组件渲染

使用 vue-router 在导航前获取多个组件

Vue 2 应用程序无法在 vue-router 中延迟加载路由导入组件

vue-route 切换 视图不更新

vue,js vue-router 2 组件数据不更新