【问题标题】:vue component can not get this.$router from vue-routervue 组件无法从 vue-router 获取 this.$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

【问题讨论】:

    标签: vue.js vue-router


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2022-01-17
      • 2018-11-08
      • 2018-11-23
      • 2018-04-22
      • 2021-06-11
      • 1970-01-01
      • 2018-08-01
      • 2018-06-12
      • 2019-03-01
      相关资源
      最近更新 更多