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

  • 相关阅读:
    Python中list的操作4-4
    作为一名普通的java程序员,我想和大家分享一下4年来的工作内容
    Rust编程中的共享状态并发执行
    从底层原理看Android的序列化是如何实现的
    code_recognition(esp-who)
    今日伦敦金行情分析方法分享
    JavaWeb在线商城系统(java+jsp+servlet+MySQL+jdbc+css+js+jQuery)
    达梦:SQL调优
    MongoDB的聚合笔记
    Tomcat - mac - 启动/关闭
  • 原文地址:https://blog.csdn.net/m0_60376759/article/details/126107564