• axios的二次封装(拦截器)、Vuex--modules


    axios进行二次封装

    为啥要封装? 不符合我的需求  满足不了我的需求

    最终达到的效果

       配置基础路径和超时限制

       添加进度条信息  nprogress

      返回的响应不再需要从data属性当中拿数据,而是响应就是我们要的数据

      统一处理请求错误, 具体请求也可以选择处理或不处理

    axios的拦截器

     两个作用:1、本质是拦截报文  2、 添加功能

    1. import axios from "axios";
    2. import Nprogress from 'nprogress'
    3. import 'nprogress/nprogress.css'
    4. Nprogress.configure({ showSpinner: false });
    5. // 1、配置基础路径和超时限制
    6. const instance = axios.create({
    7. // baseURL本身是为了写接口的公共部分作为基础路径
    8. // 最终如果要配代理,这里写的是代理的标识
    9. baseURL: '/api',
    10. timeout: 20000,
    11. });
    12. // 添加进度条信息 nprogress
    13. instance.interceptors.request.use(
    14. (config) => {
    15. // config配置,你写axios函数的时候,传递的配置对象,
    16. // 这些配置项最终都会解析到报文里面去,所以config我们可以认为就是我们的请求报文
    17. // 1、修改报文 添加头信息
    18. // 2、在此开启额外功能
    19. Nprogress.start()
    20. return config
    21. },
    22. // 失败的回调一般可以不配
    23. (error) => {
    24. alert('请求拦截失败')
    25. return Promise.reject(error)
    26. }
    27. );
    28. instance.interceptors.response.use(
    29. (response) => {
    30. Nprogress.done()
    31. // 3返回的响应不再需要从data属性当中拿数据,而是响应就是我们要的数据
    32. return response.data
    33. },
    34. (error) => {
    35. Nprogress.done()
    36. // 4、统一处理请求错误, 具体请求也可以选择后续继续处理或不处理
    37. alert('发送ajax请求失败')
    38. // return new Promise(() => {})
    39. return Promise.reject(error)
    40. }
    41. );
    42. export default instance

     api/index.js

    1. // 这个文件是专门用来写接口请求函数的
    2. // 以后每个接口请求数据的时候都书写一个函数来对应
    3. // 想要哪个接口的数据,后期直接调用对应的函数即可
    4. import request from '@/utils/request'
    5. export const reqCategoryList = () => {
    6. return request({
    7. url:'/product/getBaseCategoryList',
    8. method:'get'
    9. })
    10. }
    11. // reqCategoryList()

    main.js

    1. // 第一种测试接口的方法,需要在模块当中调用接口请求函数
    2. // import '@/api'
    3. // 第二种测试接口的方法
    4. // import {reqCategoryList} from '@/api'
    5. // reqCategoryList()

    Vuex--modules

     

     

    第一次项目当中发请求获取数据流程
    1、考虑工具,axios二次封装
    2、书写api接口请求函数  
    3、测试写好的api接口请求函数(2种方法)配置代理解决跨域
    4、考虑数据回来存在哪(用不用vuex管理)  vuex的配置及vuex的模块化
    5、书写三连环(写完三连环请求并没有发送)
    6、哪个组件用数据,在哪个组件当中dispatch,数据就存储到了vuex的state当中
    7、把数据从vuex当中捞到组件当中,进行遍历渲染

  • 相关阅读:
    用jQuery向FCKEditor插件取值、赋值
    web中间件漏洞-weblogic漏洞-弱口令war包上传
    群晖下 gitea+drone+harbor实现CI/CD 发布到云服务器
    Ubuntu20.4安装QT6
    基于JAVA+SpringBoot+Mybatis+MYSQL的课程在线学习系统
    罗马和汉朝的全面对比:接受事实,罗马在文化方面全面领先了汉朝
    做影视解说短视频要注意哪些小技巧?刚入行的小伙伴可参考
    部署LVS-DR集群
    计算机图形学(七)-深度缓存、着色shadding、着色模型、着色频率、渲染管线
    Mac m1配置MAMP+PHPStorm环境
  • 原文地址:https://blog.csdn.net/m0_60376759/article/details/126107564