当前位置: 首页 > news >正文

网站建设项目外包网站/广告公司简介

网站建设项目外包网站,广告公司简介,网站建设数据库的购买,建设网站的心得分享一个自己封装的 axios 网络请求 主要的功能及其优点: 将所有的接口放在一个文件夹中管理(api.js)。并且可以支持动态接口,就是 api.js 文件中定义的接口可以使用 :xx 占位,根据需要动态的改变。动态接口用法模仿…

分享一个自己封装的 axios 网络请求

主要的功能及其优点:

将所有的接口放在一个文件夹中管理(api.js)。并且可以支持动态接口,就是 api.js 文件中定义的接口可以使用 :xx 占位,根据需要动态的改变。动态接口用法模仿的是vue的动态路由,如果你不熟悉动态路由可以看看我的这篇文章:Vue路由传参详解(params 与 query)

1.封装请求:

  1. 首先在 src 目录下创建 http 目录。继续在 http 目录中创建 api.js 文件与 index.js 文件。
  2. 然后再 main.js 文件中导入 http 目录下的 index.js 文件。将请求注册为全局组件。
  3. 将下面封装所需代码代码粘到对应的文件夹

2.基本使用:

//示例:获取用户列表
getUsers() {const { data } = await this.$http({url: 'users' //这里的 users 就是 api.js 中定义的“属性名”})
},
复制代码

3.动态接口的使用:

//示例:删除用户
deleteUser() {const { data } = await this.$http({method: 'delete',//动态接口写法模仿的是vue的动态路由//这里 params 携带的是动态参数,其中 “属性名” 需要与 api 接口中的 :id 对应//也就是需要保证携带参数的 key 与 api 接口中的 :xx 一致url: {// 这里的 name 值就是 api.js 接口中的 “属性名”name: 'usersEdit',params: {id: userinfo.id,},},})
},
复制代码

4.不足:

封装的请求只能这样使用 this.$http() 。不能 this.$http.get()this.$http.delete()

由于我感觉使用 this.$http() 这种就够了,所以没做其他的封装处理

如果你有更好的想法可以随时联系我

如下是封装所需代码:

  • api.js 管理所有的接口
// 如下接口地址根据自身项目定义
const API = {// base接口baseURL: 'http://127.0.0.1:8888/api/private/v1/',// 用户users: '/users',// “修改”与“删除”用户接口(动态接口)usersEdit: '/users/:id',
}
​
export default API
​
复制代码
  • index.js 逻辑代码
// 这里请求封装的主要逻辑,你可以分析并将他优化,如果有更好的封装方法欢迎联系我Q:2356924146
import axios from 'axios'
import API from './api.js'
​
const instance = axios.create({baseURL: API.baseURL,timeout: '8000',method: 'GET'
})
​
// 请求拦截器
instance.interceptors.request.use(config => {// 此处编写请求拦截代码,一般用于加载弹窗,或者每个请求都需要携带的tokenconsole.log('正在请求...')// 请求携带的tokenconfig.headers.Authorization = sessionStorage.getItem('token')return config},err => {console.log('请求失败', err)}
)
​
// 响应拦截器
instance.interceptors.response.use(res => {console.log('响应成功')//该返回对象会绑定到响应对象中return res},err => {console.log('响应失败', err)}
)
​
//options 接收 {method, url, params/data}
export default function(options = {}) {return instance({method: options.method,url: (function() {const URL = options.url
​if (typeof URL === 'object') {//拿到动态 urllet DynamicURL = API[URL.name]
​//将 DynamicURL 中对应的 key 进行替换for (const key of Object.keys(URL.params)) {DynamicURL = DynamicURL.replace(':' + key, URL.params[key])}
​return DynamicURL} else {return API[URL]}})(),//获取查询字符串参数params: options.params,//获取请求体字符串参数data: options.data})
}
​
复制代码
  • main.js 将请求注册为全局组件
import Vue from 'vue'
​
// 会自动导入 http 目录中的 index.js 文件
import http from './http'
​
Vue.prototype.$http = http

http://www.jmfq.cn/news/5282371.html

相关文章:

  • 新疆乌鲁木齐做网站/河南怎样做网站推广
  • 北京网站建设迈程网络/seo排名关键词
  • 网站开发合作意向书/东莞做网站的联系电话
  • 做底单的网站/seo黑帽技术工具
  • 标识标牌制作设计/哪家网站优化公司好
  • 做网店好还是自己建网站好/百度怎么注册公司网站
  • 超溜网站建设/苹果cms播放器
  • 电子商务网站建设期中/如何进行网站制作
  • 电子商务网站建设规划书的内容/电脑优化软件
  • 做中澳原产地证的网站/什么平台可以推销自己的产品
  • 长沙制作网站的公司/seo门户网价格是多少钱
  • 网站更新升级/杭州关键词排名提升
  • WordPress交互式网站/厦门seo结算
  • 南宁网站seo优化公司/深圳seo优化seo优化
  • 郑州企业网站建站/网站怎么制作
  • 红色文化网站建设/信息流优化师怎么入行
  • 教育平台网站开发/java培训班学费一般多少
  • 安卓开发网站开发/外贸网站有哪些
  • 网站怎样做才会被百度收录/百度推广多少钱一天
  • 动态网站建设04章在线测试/百度一下百度搜索
  • 做推广网站的去哪能买到有效资料/免费的推广软件下载
  • 南京建站公司哪家好/360优化大师下载
  • 怎样制作h5页面/seo网站优化软件价格
  • 网站制作 视频/百度排行榜风云
  • 网站建设是自己做好还是外包/宁波seo网站推广软件
  • 自己建一个影视网站要怎么做/企业宣传文案
  • 网站开发工作 岗位怎么称呼/百度快照怎么使用
  • 小网站 收入/seo搜索引擎优化书籍
  • 天津河东做网站贵吗/线上电脑培训班
  • 厦门微信网站建设/seo技术最新黑帽