vue实践---根据不同环境,自动转换请求的url地址
2024-10-20 13:31:42
一般的项目环境分为:本地环境,测试环境,预发环境,正式环境。 这些环境的域名一般是一样的, 前端请求接口的url也会随着这些环境的变化而改变,手动修改有点麻烦,所以想个办法,让请求的地址根据域名改变而改变。
第一步:
建立一个RequestConfig.js 作为配置文件,内容如下:
const APIMapping = {
project1: {
test: 'http://123.com',
local: 'http://abc.com'
},
project2: {
test: 'http://123.com',
local: 'http://abc.com'
}
}
const currentEnvMapping = {
'127.0.0.1': 'test',
'localhost': 'local',
}
export { currentEnvMapping, APIMapping }
这里只列举了测试环境,和本地环境,其他环境使用方法一样。
APIMapping是所有的项目,这里有 project1,project2 ;每个项目分为本地环境(test),测试环境(local);
currentEnvMapping 指明什么域名下使用本地环境的域名,还是测试环境的域名。
第二步
使用vuex, 建立一个store文件存放vuex, 然后再建立index.js存放数据:
import Vue from 'vue'
import Vuex from 'vuex'
import { APIMapping, currentEnvMapping } from './../common/RequestConfig.js' Vue.use(Vuex)
const state = {
// 这里currentEnvMapping[location.hostname]确定是test, 还是local环境
// APIMapping['project1']确定了是哪个项目
// APIMapping['project1'][currentEnvMapping][location.hostname]最终确定了url
RequestHost: APIMapping['project1'][currentEnvMapping[location.hostname]]
} const getters = {
get_RequestHost: state => {
return state.RequestHost
}
} export default new Vuex.Store({
state,
getters
})
第三步
就可以使用了,跟正常的vue一样,代码如下:
mounted(){
console.log(this.$store.getters.get_RequestHost)
}
具体的代码看这里:https://github.com/YalongYan/vue-practice/tree/master/dynamic-request
vue实践系列请看这里:https://github.com/YalongYan/vue-practice
最新文章
- PHP文件操作系统----主要的文件操作函数
- Android IOS WebRTC 音视频开发总结(六六)-- 三个角度分析美女视频直播这个行业
- 【微网站开发】之微信内置浏览器API使用
- cdoj 04 Complete Building the Houses 暴力
- Struts2中的类型转换
- Java Socket简例
- How and Why Unsafe is Used in Java---reference
- 如何在ASP.NET MVC 中获取当前URL、controller、action
- Maven测试篇
- IOC容器在web容器中初始化——(一)两种配置方式
- repr调试python程序
- Windows 上安装 Azure PowerShell及Azure PowerShell部署虚拟机
- AX_ClassTemplate
- Python学习(十二) —— 面向对象
- CDH下集成spark2.2.0与kafka(四十一):在spark+kafka流处理程序中抛出错误java.lang.NoSuchMethodError: org.apache.kafka.clients.consumer.KafkaConsumer.subscribe(Ljava/util/Collection;)V
- sql日期操作
- 680. Valid Palindrome II
- 什么时候block 是放在全局区里面的?
- 微服务深入浅出(1)-- SpringBoot
- Android中TextView设置最大长度,超出显示省略号