Строки, содержащие переменные, должны быть заключены в серьезный акцент (`) без одинарной кавычки (') или двойной кавычки (")
const myValue
const myString = `This is the value: ${myValue}`
Также используйте передаваемые реквизиты прямо с роутера:
https://router.vuejs.org/guide/essentials/passing-props.html
// ROUTER
const router = new VueRouter({
routes: [
{ path: '/profile/:pId', component: Profile, props: true }
]
})
Итак, ваш код должен выглядеть следующим образом:
// Profile.vue
<template></t
<script>
export default {
name: 'profile',
props: ['pId'],
methods: {
loadProfile() {
const vm = this // Ensure expected scope of reference to "this" is maintained in the anonymous Axios callback functions as the component:
const pId = this.$route.
vm.status = 'Loading ....';
axios.get(`/profile/${vm.pId}`)
.then(response => {
vm.profile = response.data.profile;
})
.catch(e => {
vm.errors.push(e)
})
}
init() {
console.log('Profile mounted');
const vm = this
EventBus.$on('creds' , key => {
[vm.pId, vm.uId] = key;
})
}
mounted () {
this.init()
},
created () {
this.loadProfile();
}
}
</script>