文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Vue接口封装的示例分析

2023-06-15 01:47

关注

这篇文章主要介绍了Vue接口封装的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

首先根据接口写好对应页面的请求

内容如图尽量保证js文件名称与页面文件名称相同(易于查找)

Vue接口封装的示例分析

根据文件目录动态引入/导出接口

提高便捷性

 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 instanceconst 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 interceptorservice.interceptors.request.use(  config => {    // 在发送请求之前做些什么    if (store.getters.token) {      // let each request carry token让每个请求携带令牌      // ['X-Token'] is a custom headers key 是一个自定义键      // please modify it according 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 interceptorservice.interceptors.response.use(      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 flagENV = 'development'# base apiVUE_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是一套用于构建用户界面的渐进式JavaScript框架,Vue与其它大型框架的区别是,使用Vue可以自底向上逐层应用,其核心库只关注视图层,方便与第三方库和项目整合,且使用Vue可以采用单文件组件和Vue生态系统支持的库开发复杂的单页应用。

感谢你能够认真阅读完这篇文章,希望小编分享的“Vue接口封装的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯