javascript - 如何将 Prop 传递给 vue.js 中的所有路由?

标签 javascript vue.js vuejs2 vue-router

我想将 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 warn]: Error in created hook: "ReferenceError: BASE_URL is not defined"

我该如何解决这个问题?

最佳答案

要访问使用 props: ['BASE_URL'] 定义的 prop,您可以使用 this.BASE_URL:

axios.get( this.BASE_URL + '/api/jokes').then(/*...*/)

关于javascript - 如何将 Prop 传递给 vue.js 中的所有路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45756584/

相关文章:

javascript - 淡出、淡入 : Variable references lost

javascript - 将数据从服务获取到我的组件

javascript - 如何使用 Vue JS 在 HTML 的同一标记中使用 "v-if"和 "v-else"?

vuejs2 - VueJS : How to bind a datetime?

javascript - 如何调用 Vuejs 实例声明的函数?

javascript - 哪些变量位于图像 .onerror 调用的范围内?

vue.js - 如何使用 VUE.js 定义选中和未选中复选框的值?

Vue.js 属性类型检查失败

循环内输入元素的 Vue.js 标签

javascript - 查找带有 only 和删除 p 标签的段落