技术细节-继续配置
提示:你以为这样就完了吗,其实还有很多东西需要我们自己手写的
例如:
- element-ui的配置
- 样式重置配置
- src使用@的配置
- elinst配置
- axios异步请求的二次封转配置
- 语言国际化配置(这个看需求,我这里就不用配置了)
- vuex的配置
- mixins的配置
- 开发环境的配置
继续:
axios异步请求的二次封转配置
这个是每一个项目中都必须要的:
首先下载axios 插件
npm i axios -S
其实在项目的src目录中新建 utils目录,然后再新建request.js
src --> utils --> request.js
代码:
import Vue from 'vue'
import axios from 'axios'// 设置超时时长
axios.defaults.timeout = '30000'// request拦截器
axios.interceptors.request.use((config) => {return config
}, (error) => {return Promise.reject(error)
})// responese拦截器
axios.interceptors.response.use((res) => {return res.data
}, (error) => {Vue.$message.error(error.toString())return Promise.reject(error)
})/*** 设置请求header* @param {Object} headers*/
const setHeader = (headers) => {for (const key in headers) {axios.defaults.headers[key] = headers[key]}
}/*** POST请求* @param {String} url 地址* @param {Object} params 参数* @param {Object} headers headers*/
export const request= (url, params, method,headers = {}) => {return new Promise((resolve, reject) => {setHeader(headers)axios({url,method,data: method == 'post'? params:"",params: method =='get'?params:"" }).then((response) => {resolve(response.data)}).catch((error) => {reject(error)})})
}/*** 文件上传* @param {String} url 地址* @param {File} file 文件*/
export const uploadFile= (url, file) => {return new Promise((resolve, reject) => {const formData = new FormData()formData.append('file', file)formData.append('currentDate', Date.now())axios.post(url, formData, {headers: {'Content-Type': 'multipart/form-data'}}).then((response) => {resolve(response.data)}).catch((error) => {reject(error)})})
}
vuex的配置 (项目自动完成了)
这个项目已经配置完成
mixins的配置 (这个主要是放公共的方法)
在src目录中新建mixins文件夹,然后再新建index.js
src --> mixins ---> index.js
export default {data() {return {};},created(){},methods: {},
};
在使用mixins的时候要注意了: 他的方法 和 vue的方法 的先后使用问题
开发环境的配置 (这里的开发环境是指当前是 开发 , 生产, 测试)
配置如下:在项目的根目录新建三个文件
都写相同的代码:
NAME="开发环境 dev"
VUE_APP_API_URL=http://127.0.0.1 // url为不用环境的地址
小结
提示:跨域我就没有写了,这个百度就有
项目搭建完成之后,希望大家自己启动然后测试一下,有问题的哈,可以在想交流,