Vue接口封装的完整步骤记录
网络编程 2021-07-04 14:07www.168986.cn编程入门
对于中小型企业,vue应用越来越多,学习vue相对于react的成本要低点,入门相对简单。这篇文章主要给大家介绍了关于Vue接口封装的相关资料,需要的朋友可以参考下
根据接口写好对应页面的请求
内容如图尽量保证js文件名称与页面文件名称相同(易于查找)
根据文件目录动态引入/导出接口
提高便捷性
/ 自动引入当前文件夹下所有module require.context(directory, useSubdirectories = false, regExp = /^.//); @param {String} directory 读取文件的路径 @param {Boolean} directory 匹配文件的正则表达式 @param {regExp} regExp 读取文件的路径 / const modulesFiles = require.context( './', // 在当前目录下查找 false, // 不遍历子文件夹 /\.js$/ // 正则匹配 以 .js结尾的文件 ) const modules = modulesFiles.keys().reduce((modules, modulePath) => { const moduleName = modulePath.replace(/^.\/(.)\.js/,'$1') const value = modulesFiles(modulePath) modules[moduleName] = value.default return modules }, {}) export default modules
根据项目情况编写拦截/插入内容
import axios from 'axios' import { MessageBox, Message } from 'element-ui' import store from '@/store' import { getToken } from '@/utils/auth' // create an axios instance const service = axios.create({ baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url // withCredentials: true, // send cookies when cross-domain requests timeout: 5000 // request timeout }) // request interceptor service.interceptors.request.use( config => { // 在发送请求之前做些什么 if (store.getters.token) { // let each request carry token让每个请求携带令牌 // ['X-Token'] is a custom headers key 是一个自定义标题键 // please modify it aording to the actual situation请根据实际情况修改 config.headers['X-Token'] = getToken() } return config }, error => { // do something with request error console.log(error) // for debug return Promise.reject(error) } ) // response interceptor service.interceptors.response.use( / If you want to get http information such as headers or status如果您想获取http信息,如标头或状态 Please return response => response / / Determine the request status by custom code通过自定义代码确定请求状态 Here is just an example这里只是一个例子 You can also judge the status by HTTP Status Code您还可以通过HTTP状态码来判断状态 / response => { const res = response.data // console.log(res); // 如果自定义代码不是20000,则判断为错误. if (res.code !== 200) { Message({ message: res.message || 'Error', type: 'error', duration: 5 1000 }) // 50008: 非法token; 50012: 其他客户端已登录; 50014: Token 已过期; if (res.code === 50008 || res.code === 50012 || res.code === 50014) { // to re-login MessageBox.confirm('您已注销,可以取消以停留在此页面,或重新登录', '确认注销', { confirmButtonText: 'Re-Login', cancelButtonText: 'Cancel', type: 'warning' }).then(() => { store.dispatch('user/resetToken').then(() => { location.reload() }) }) } return Promise.reject(new Error(res.message || 'Error')) } else { return res } }, error => { console.log('err' + error) // for debug Message({ message: error.message, type: 'error', duration: 5 1000 }) return Promise.reject(error) } ) export default service
编写env文件
# just a flag ENV = 'development' # base api VUE_APP_BASE_API = 'http://192.168.2.44:5001/v1'
vue继承api
import serve from './api/index' Vue.prototype.$api = serve;
使用
getAssetsList() { this.$api.assets .getAssetsList(this.queryInfo.num, this.queryInfo.size) .then((res) => { this.assetsList = res.data.cards this.total = res.data.page.totalCount }) .catch(() => { this.$message.error({ message: "失败", duration: 700, }) }) },
到此这篇关于Vue接口封装的文章就介绍到这了,更多相关Vue接口封装内容请搜索狼蚁SEO以前的文章或继续浏览狼蚁网站SEO优化的相关文章希望大家以后多多支持狼蚁SEO!
上一篇:React编程中需要注意的两个错误
下一篇:Vue全家桶入门基础教程
编程语言
- 甘肃哪有关键词排名优化购买方式有哪些
- 甘肃SEO如何做网站优化
- 河南seo关键词优化怎么做电话营销
- 北京SEO优化如何做QQ群营销
- 来宾百度关键词排名:提升您网站曝光率的关键
- 卢龙关键词优化:提升您网站排名的策略与技巧
- 山东网站优化的注意事项有哪些
- 四川整站优化怎样提升在搜索引擎中的排名
- 疏附整站优化:提升网站性能与用户体验的全新
- 海南seo主要做什么工作售后服务要做到哪些
- 荣昌百度网站优化:提升您网站的搜索引擎排名
- 河北seo网站排名关键词优化如何做SEO
- 江西优化关键词排名推广售后保障一般有哪些
- 古浪SEO优化:提升你的网站可见性
- 西藏网站排名优化怎么把网站排名在百度首页
- 如何提升阳东百度快照排名:详尽指南