• 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当中捞到组件当中,进行遍历渲染

  • 相关阅读:
    TENSEAL: A LIBRARY FOR ENCRYPTED TENSOR OP- ERATIONS USING HOMOMORPHIC ENCRYPTION 解读
    Java -- 每日一问:Java并发包提供了哪些并发工具类?
    Windows 11 安装OpenCV 及其学习路线
    创建数据库报错--MySQL server is running with the --super-read-only option
    如何制作垃圾分类电子宣传册?
    请讲一讲JS中的 for...in 与 for...of (上)
    C++分治算法-------木材加工
    浅析即时通讯开发前置 HTTP SSO 单点登陆接口的原理
    C++面试常见问题 — C++语言基础
    Three.js 进阶之旅:全景漫游-高阶版在线看房 🏡
  • 原文地址:https://blog.csdn.net/m0_60376759/article/details/126107564