[英]How to pass props to all routes in vue.js?
我想將BASE_URL
傳遞給所有組件。 我的 App.js 就像:
<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>
還有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'} }
]
在showJokesAll
組件中我有:
<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>
但是組件沒有收到BASE_URL
。
[Vue 警告]:創建鈎子時出錯:“ReferenceError:未定義 BASE_URL”
我怎樣才能解決這個問題?
要使用 props: ['BASE_URL'] 訪問 prop 定義,您可以使用this.BASE_URL
:
axios.get( this.BASE_URL + '/api/jokes').then(/*...*/)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.