Ich möchte BASE_URL
an alle Komponenten übergeben. Mein App.js ist wie:Wie können Requisiten an alle Routen in vue.js übergeben werden?
<template>
<router-view></router-view>
</template>
<script>
import addJoke from './components/addJoke.vue'
import showJokesAll from './components/showJokesAll.vue'
export default {
components: {
'add-joke': addJoke,
'show-jokes-all': showJokesAll
},
data() {
return {
BASE_URL : 'http://127.0.0.1:8090'
}
}
}
</script>
<style>
</style>
Und die routes.js
:
import showJokesAll from './components/showJokesAll.vue';
import addJoke from './components/addJoke.vue';
export default [
{path:'/', component: showJokesAll, props: {BASE_URL: 'http://127.0.0.1:8090'} },
{path:'/add', component: addJoke, props: {BASE_URL: 'http://127.0.0.1:8090'} }
]
und in showJokesAll
Komponente Ich habe:
<script>
import axios from 'axios';
export default {
name: 'showJokesAll',
props: ['BASE_URL'],
data() {
return {
jokes:[]
}
},
methods: {
},
created() {
axios.get(BASE_URL + '/api/jokes').then(response => this.jokes = response.data);
}
}
</script>
Aber die Komponenten BASE_URL
nicht empfangen.
[Vue warn]: Error in created hook: "ReferenceError: BASE_URL is not defined"
Wie kann ich das beheben?
Ja, das funktioniert! Irgendeine Idee, wie man die Redundanz in den 'routes.js' loswerden kann? – Karlom