В общем, чтобы избежать конфликта, вам необходимо определить и использовать его со знаком доллара $:
Vue.prototype.$api_url = 'http://localhost'
и
axios.post(this.$api_url + '/dashboard')
UPDATE
Как объяснено здесь , внутри beforeRouteEnter у вас нет доступа к нему, потому что компонент еще не создан.
beforeRouteEnter (to, from, next) {
// called before the route that renders this component is confirmed.
// does NOT have access to `this` component instance,
// because it has not been created yet when this guard is called! },
To доступ к этому, вы можете передать обратный вызов внутри функции next()
, например:
beforeRouteEnter (to, from, next) {
next(that => {
console.log(that.$api_url );
})
}
Обновление II
как для комментария Sphinx здесь,
вы можете импортировать Vue в свою панель управления. vue, а затем получить прямой доступ к Vue .prototype. $ Api_url
, и это тоже будет работать до того, как компонент фактически монтирует.
Надеюсь, это поможет!