Я пытаюсь получить переменную с именем project_id
из адресной строки, используя vue-router.Я инициализировал маршрутизатор следующим образом:
import Vue from 'vue'
import VueRouter from 'vue-router'
import App from './App'
Vue.config.productionTip = false
Vue.use(VueRouter)
/* eslint-disable no-new */
const router = new VueRouter({
routes: [
{ path: '/project/:project_id', component: App }
]
})
new Vue({
el: '#app',
router,
components: { App },
template: '<App/>'
})
И попытался получить доступ к this.$route.params.project_id
из моего компонента App.vue:
<template>
<div id="app">
<img src="./assets/logo.png">
<div id="center_bar">
oh: {{this.$route.params.project_id}}
</div>
</div>
</template>
<script>
import ProjectList from './components/ProjectList'
import ProjectAboutBox from './components/ProjectAboutBox'
export default {
name: 'App',
created() {
console.dir(this.$route.params)
},
components: {
ProjectList,
ProjectAboutBox
}
}
</script>
Однако, когда я пишу this.$route.params
к консоли я вижу, что это пустой объект.
Я не видел никого, кто сталкивался с чем-то похожим, поэтому я предполагаю, что мне не хватает чего-то очень простого, но я не могу понять,точно, что это такое.
Кроме того, если я console.dir(this.$route)
, я вижу, что fullPath
- это "/", хотя я получаю доступ к http://localhost:8080/project/kljkjkj/
РЕДАКТИРОВАТЬ:
Я также обнаружил, что когда я создаю <router-link>
, который приводит к адресу, который я хочу проанализировать, а затем нажимая на него, все это работает, просто получая прямой доступ к нему, набравадрес в адресной строке не работает