当前位置:   article > 正文

在vue2中封装axios请求_vue2封装请求

vue2封装请求

在上篇文章中介绍了如何从零开始,搭建一个vue2项目,感兴趣可移步:搭建一个vue2项目-CSDN博客

但大多数项目中都会涉及到接口请求,本次就以实际项目说明,如何在vue2项目中使用axios封装接口请求。

1、在项目中的src目录下新建一个utils文件夹,在该文件夹下新建request.js文件,在项目中端输入命令行安装axios依赖

npm install axios

或使用yarn安装

yarn add axios

2、request.js文件内容如下

  1. import axios from 'axios' //引入axios
  2. const baseURL = 'http://XXX.XXX.XXX' + '/api' //项目访问的地址和前缀
  3. //创建一个新的axios实例
  4. const service = axios.create({
  5. baseURL: baseURL,
  6. timeout: 20000 //设置超时时间,超过该时间就不会发起请求
  7. })
  8. // 请求拦截器,在发送请求前要做的事,例如设置请求头,统一的请求参数等
  9. service.interceptors.request.use(
  10. config => {
  11. config.headers = {
  12. }
  13. return config
  14. },
  15. error => {
  16. console.log(error)
  17. return Promise.reject(error)
  18. })
  19. // 响应拦截器,对请求后等到响应的数据进行处理
  20. service.interceptors.response.use(
  21. response => {
  22. // 请求成功处理
  23. },
  24. error => {
  25. // 请求失败处理
  26. }
  27. )
  28. // 对外暴露
  29. export default service

3、在src目录下创建api文件夹 ,用于存放各页面需要请求的接口,例如有一个数据展示页面名称为dataDisplay,那么我们如图所示添加文件

 dataDisplay.js文件中的内容如下:

  1. // 引入封装的request.js文件
  2. import request from '@/utils/request'
  3. // 查询-get类型
  4. export function dataDisplayList(data) {
  5. return request({
  6. url: '/dataDisplay/list',
  7. method: 'get',
  8. params: data
  9. })
  10. }
  11. // 新增-post类型
  12. export function dataDisplayAdd(data) {
  13. return request({
  14. url: '/dataDisplay/add',
  15. method: 'post',
  16. data
  17. })
  18. }
  19. // 删除-delete类型
  20. export function dataDisplayDelete(id) {
  21. return request({
  22. url: `/dataDisplay/delete/${id}`,
  23. method: 'delete'
  24. })
  25. }

4、在页面中使用

  1. <template>
  2. <div class="dataDisplay">
  3. // 页面内容
  4. </div>
  5. </template>
  6. <script>
  7. // 引入接口,引入路径按项目实际情况而定
  8. import {
  9. dataDisplayList,
  10. dataDisplayAdd,
  11. dataDisplayDelete } from "@/api/dataDisplay/dataDisplay";
  12. export default {
  13. name:"dataDisplay",
  14. data() {
  15. return {
  16. tableData: [],
  17. }
  18. },
  19. created() {
  20. this.getDataDisplayList();
  21. },
  22. methods: {
  23. // 获取数据
  24. getDataDisplayList(){
  25. let params = { ... } //参数
  26. dataDisplayList(params).then(res => {
  27. if(res.code == 200){
  28. this.tableData = res.rows
  29. }
  30. })
  31. },
  32. // 新增
  33. handleAdd(){
  34. let data = { ... } //参数
  35. dataDisplayAdd(data).then(res => {
  36. if(res.code == 200){
  37. // 新增成功处理
  38. }else{
  39. // 新增失败处理
  40. }
  41. })
  42. },
  43. // 删除
  44. handleDelete(){
  45. let data = { ... } //参数
  46. dataDisplayDelete(data).then(res => {
  47. if(res.code == 200){
  48. // 删除成功处理
  49. }else{
  50. // 删除失败处理
  51. }
  52. })
  53. },
  54. }
  55. }
  56. </script>

到此封装完成,可以在项目中请求接口拿到数据。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/1001480
推荐阅读
相关标签
  

闽ICP备14008679号