在 Vue 中获取或设置 baseURL 主要涉及全局配置、Axios 实例化及组件级设置。以下是具体方法和应用场景的详细说明:
1. 全局配置方式Vue.config.baseURLaxios.defaults.baseURL2. 组件级设置使用 use 组合函数(Vue 3)- 作用:在组件内动态设置 baseURL(需结合插件或自定义逻辑)。
- 示例:import { use } from 'vue';export default { setup() { use({ baseURL: '/custom-api', // 需自定义逻辑处理 }); },};
- 注意:Vue 3 的 use 通常用于插件,直接设置 baseURL 需额外封装逻辑。
3. 测试环境配置通过 mountOptions(Vue Test Utils)- 作用:在单元测试中为组件设置测试专用的 baseURL。
- 示例:import { mount } from '@vue/test-utils';import MyComponent from '@/components/MyComponent.vue';const wrapper = mount(MyComponent, { global: { plugins: [ { install(app) { app.config.baseURL = '/mock-api'; }, }, ], },});
4. 应用实例化时配置通过 createApp(Vue 3)5. 自定义 Axios 实例如何获取已设置的 baseURL?- 全局配置:通过 Vue.config.baseURL 或 axios.defaults.baseURL 直接读取。
- Axios 实例:访问实例的 defaults.baseURL 属性:console.log(axios.defaults.baseURL); // 输出全局配置console.log(apiClient.defaults.baseURL); // 输出自定义实例配置
注意事项- 优先级:组件级 > 全局配置 > Axios 默认值。
- 环境区分:建议通过环境变量(如 .env 文件)动态设置 baseURL:axios.defaults.baseURL = process.env.VUE_APP_API_URL;
- 测试隔离:测试环境中使用 mountOptions 或 Mock 工具避免污染全局配置。
通过以上方法,可以灵活地在 Vue 项目中管理 baseURL,适应开发、测试和生产环境的不同需求。