vue中的代理转换机制proxyTable配置项
随着互联网技术的发展,现在很多互联网公司分工越来越明确了。后端开发人员只负责后端开发及接口的提供,前端人员负责按照设计图出页面及套页面,这个时候就出现了一种新的开发模式。即前后端分离模式。前端框架更新及普及更加推动了前后端分离开发。这种模式缩短了项目开发周期。但是,有时候会会出现比较尴尬的情况。比如再使用VUE写项目的时候,就会遇到。
在写vue项目的时候,后台没有及时提供数据,我们前台会在本地模拟一些数据进行开发测试,在axios请求这些假数据的时候,我们需要添加一个请求路径,按道理来说我们写上本地数据路径即可,但是在项目上线的时候就得修改这些本地路径,这样很容易出现漏改,所以,vue给出了一个代理转换机制。
首先,在static文件夹下新建一个mock文件夹用于存放假数据index.json文件:
其次,在 .gitignore 文件,添加static/mock ,目的以后在提交代码的时候既不会提交到本地git仓库中也不会提交到线上git仓库中;
再次,在你的组件中写好axios请求事件:
methods:{
getHomeInfo (){
axios.get('/api/index.json')
.then(this.getHomeInfoSuccess)
},
getHomeInfoSuccess(res){
console.log(res)
}
},
mounted(){
this.getHomeInfo()
}
然后,找到 config -- index.js -- proxyTable: { }配置项:
vue中的代理功能(其实是 webpack-dev-server提供的此方法),使用转发机制,能将 api/index.json 请求路径转发到 static/mock/index.json 文件下
proxyTable: {
'/api':{
target:'http://localhost:8080',
pathRewrite:{
'^/api':'/static/mock'
}
}
},
最后,可以输入localhost:8080/static/mock/index.json访问到你的假数据(因为上面提到了,static文件夹里的文件从外部是可以访问到的);你也可以启动项目将数据打印到控制台查看;