vue创建项目架构
我们在创建一个新项目的时候肯定要搭建一个架构
1.我们先创建运行环境
production生产环境 development开发环境 test测试环境 然后可以在里面写些不同环境的变量问题
.env.test 文件夹下面
NODE_ENV='test'
VUE_APP_MODE='test'
VUE_APP_URL='www.baidu3.com'
package.json 下面的脚本语言
"dev": "vue-cli-service serve --mode development",
"pro": "vue-cli-service serve --mode production",
"test": "vue-cli-service serve --mode test"
注意 :然后在进行vue.config.js的基础配置,这里面的运行是基于node.js的运行环境所以打印的是后台窗口那里 这样环境变量就创建好了
这里简单提下,习惯把main的文件下面的链式语法拆分,这样后期可以直接挂载
2.封装axios请求
- 首先我们先创建一个api文件,下面创建一个
http.js 文件夹 http.js文件夹就是axios请求的二次封装
import axios from "axios";
import qs from "qs";
switch (process.env.NODE_ENV) {
case "production":
console.log(1);
break;
case "test":
console.log(2);
break;
default:
console.log(3);
break;
}
axios.defaults.timeout = 100000;
axios.defaults.withCredentials = true;
axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlenconded';
axios.defaults.transformRequest = data => qs.stringify(data);
axios.interceptors.request.use(config => {
let token = localStorage.getItem('token');
token && (config.headers.Authorization = token);
return config
}, error => {
return Promise.reject(error)
});
axios.interceptors.response.use(res => {
return res.data
}, error => {
let { res } = error
if (res) {
} else {
if (!window.navigator.onLine) {
return;
}
return Promise.reject(error)
}
})
export default axios;
3.接下来开始分模块引用
在创建一个api.js 导入模块的请求 统一到处
import login from './login'
export default {
login
}
login 文件夹下面的请求
import axios from './http'
function login(){
return axios.post('/login',{
xxx:'xxx'
})
}
export default {login}
最后把api绑定在原型链上就好了
app.config.globalProperties.$api = axiosHttp
|