• vue之axios的封装


    1.为什么需要封装axios?
    当我们改变项目的使用环境时候,url也会随之改变,那么我们就需要改很多axios请求中的url配置
    现在我们将axios封装,在项目使用环境改变时我们只用改变axios封装方法中的baseurl一项就行了,请求的接口地址不变。

    2.Axios的封装方式

            1.执行安装axios命令:  npm i axios
            2.对axios进行简单的封装
                1.在src文件夹下创建utils文件夹,在utils文件夹下 创建request.js   并导出

    1. import axios from "axios";//创建一个axios的对象
    2. //生成一个axios的实例
    3. const http=axios.create({
    4. baseURL:"http://www.xxx.top:8080/",// baseURL会在发送请求的时候拼接在url参数前面
    5. timeout:3000,//请求超时
    6. });
    7. export default http;//导出

                2.在src文件夹下创建api文件夹,api文件夹下  创建index.js

    1. //导入request.js
    2. import request from "@/utils/request";//@==>src
    3. //可以按需导出
    4. //获取商品列表 方法一 返回一个请求的方法
    5. export const getProduct=(params)=>request.get("/product/",{params});
    6. //获取商品详情
    7. export const getProductDetail=(id)=>request.get(`/product/${id}`);
    8. //方法二 在api文件里出来异步请求
    9. export const getCategory=async()=>{
    10. const res=await request.get(`/category/`);
    11. return res.data.results;
    12. };

    3.在vue页面使用

            1.在script标签中引入api文件,可以按需导入所需使用的方法

                 import {getProduct} from "@/api//默认是api文件夹下的index.js文件

            2.使用getProduct方法获取数据

    1. async _getProductList(){
    2. const res=await getProduct();
    3. this.productList=res.data.results;
    4. // console.log(res.data.results);
    5. },

    有参数时:

    1. const _getProductList=async()=>{
    2. const res=await getProduct({
    3. page:page.value,
    4. size:size.value,
    5. ...query.value,//{key:"衣服"}
    6. });
    7. this.productList=res.data.results;
    8. }

    方法2:

    1.引入api文件import {getCategory} from '@/api';

    2.使用getCategory方法

    1. const _getCategory=async()=>{
    2. this.categoryTree=await getCategory();
    3. }

    补充:

    一、配合element-plus使用

    使用步骤:

    1.安装element-plus命令:   npm i element-plus
    2.在main.js中导入相关模块

    import ElementPlus from 'element-plus'

    //import zhCn from 'element-plus/es/locale/lang/zh-cn';//中文
    3.在main.js中  注册使用  app.use() 

     //app.use(ElementPlus);
      app.use(ElementPlus, {
      locale: zhCn,
    });

    二、初始化css样式

    1.执行初始化样式指令:npm i normalize.css

    2.在main.js中引入:import "normalize.css"

    或通过cdn在index.html中引入

    组件内的局部样式
    1编译组件的模板时,会给这个组件模板中的所有标签上添加一个自定义属性,自定义属性有一个组件唯一的hash
    2局部样式,编译时会在选择器规则添加属性选择器
    3:deep原理就是给对应选择器规则不要直接添加属性选择器,而是作为属性选择器的后代选择器
        :deep(img){display:block;}

  • 相关阅读:
    资料误删也不怕,这有恢复妙招快来看
    【CCIE 实验】BGP 13条选路原则实验
    Springboot之邮件发送(内附源码)
    研一Python基础课程第五周课后习题分享(含源代码)
    基于springboot实现家具商城管理系统项目【项目源码】计算机毕业设计
    【昇腾310】【mindspore 安装后测试报错】ImportError: libacl_tdt_channel.so
    ASP.NET Core 中的 MVC架构
    如何在没有第三方.NET库源码的情况,调试第三库代码?
    后端研发工程师面经——数据库
    在Application中使用代码自动判断APP是否为release版本
  • 原文地址:https://blog.csdn.net/Doulvme/article/details/126289387