首页 > 其他分享 >umijs中简单使用umi-request

umijs中简单使用umi-request

时间:2024-12-09 10:44:50浏览次数:3  
标签:http data request umijs res umi options

umi.js4中使用umi-request进行网络请求,查看官网后还是没明白,便自己摸索一遍,如下把简单使用的过程记录下来,以便共享给其他需要的小伙伴做参考,如有不对的地方,烦请指出。

第一步:安装umi-request

npm install --save umi-request

第二步:简单封装使用

在自定义路径为src/utils/http.ts文件中写入如下代码进行网络请求封装。

import request from "umi-request";  //引入库使用

interface HttpOptions {
    header?: object;
    url: string;
    method: string;
    data?: any;
    params?: any;
    timeout?: number;
}

export const http = (options: HttpOptions) => {
    return new Promise((resolve, reject) => {
        request(options.url, {
            header: options.header || {
                'Content-Type': 'application/json',
            },
            method: options.method || "GET",
            data: options?.data,
            params: options?.params || null,
            timeout: options.timeout || 2000,
            skipErrorHandler: true,
            getResponse: false,
            requestInterceptors: [],
            responseInterceptors: []
        })
            .then(res => {
                resolve(res)
            })
            .catch(err => {
                reject(err)
            })
    })
}

第三步:在封装接口中使用

如下代码示例:

import {http} from '../utils/http'; //引入封装的代码


/**
 * 登录
 */
export const login = (data: any) => {
    return http({
        url: '/api/login',
        method: 'post',
        data: data
    });
}

第四步:在页面代码中使用

import {useEffect, useState} from "react";
import {login} from "@/services/auth";

export default function HomePage() {
    const [result, setResult] = useState<any>(null);
    useEffect(() => {
        login({}).then((res) => {
            setResult(res);
            console.log("res:", res);
        })
    }, []);
    return (
        <div>
            <h2>Yay! Welcome to umi!</h2>
        </div>
    );
}

至此,即可完成简单的封装和使用了

标签:http,data,request,umijs,res,umi,options
From: https://www.cnblogs.com/bokemoqi/p/18594381

相关文章

  • 【Atcoder】【ABC383】A- Humidifier 1加湿器 题解
    前言不知道大家有没有关注过AtCoder这是小日子那边的一个网站,每周都会有比赛比起CF等等,最大的优点就是延迟低,题目质量也不错计划以后每周更新题解了正文题目传送门A-Humidifier1题目大意有一个加湿器,给定有次操作,第次在时间加入胜水然而,如果加湿器里有水,它每个单......
  • 用requests对象设计实现一个简单的计算加减乘除运算的网页程序
    为了实现一个简单的网页计算器程序,能够进行加、减、乘、除运算,我们可以使用`Flask`(一个轻量级的PythonWeb框架)来创建网页应用,并结合`requests`对象来处理用户通过表单或URL参数提交的运算请求。###项目结构假设我们的项目结构如下:```calculator_app/│├──app.py#Fla......
  • 使用requests包实现对网页HTML代码的获取
    在Python中,`requests`是一个非常流行的用于发送HTTP请求的库,它能够轻松获取网页的HTML代码。`requests`库的设计简洁易用,非常适合初学者和专业开发者使用。以下是如何使用`requests`包来获取网页HTML代码的详细步骤和示例。###1.安装`requests`包如果还没有安装`requests`......
  • requests - helloworld
    抓取静态界面importrequestsheaders={"User-Agent":"Mozilla/5.0(WindowsNT6.1;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/80.0.3987.122Safari/537.36"}url="http://localhost:63343/using_ol/simple/绘圆.html?_ijt......
  • requests - 会话保持
    使用场景:后台启用会话,登录之后,只要保持会话,就可以持续访问接口。需要注意会话保持,登录之后不要断线;为了防止CSRF攻击,登录参数除了账号密码,有时候还会有个token,这个要通过爬虫抓取;importrequests#目标网站的登录URLlogin_url='http://example.com/login'#创建一......
  • HttpServletRequest
    HttpServletRequest类确实是一个封装了完整HTTP请求信息的对象,而SpringMVC提供了更简化的方式来自动映射请求路径、请求参数等信息到控制器方法中。你不必直接使用HttpServletRequest来处理大部分常见的请求内容,因为SpringMVC会为你自动处理大部分细节。但是在某些......
  • RTSP播放器EasyPlayer.js报错The play() request was interrupted because video-only
    随着技术的发展,越来越多的H5流媒体播放器开始支持H.265编码格式。例如,EasyPlayer.jsH5播放器能够支持H.264、H.265等多种音视频编码格式,这使得播放器能够适应不同的视频内容和网络环境。那么为什么会出现Theplay()requestwasinterruptedbecausevideo-onlybackgroundmed......
  • @RequestParam 和 @PathVariable 的区别
    @RequestParam和@PathVariable都是SpringMVC中用于从HTTP请求中提取参数的注解,但它们的作用和使用场景有所不同。一.@RequestParam作用:从请求的查询参数(queryparameters)或表单数据(formdata)中提取参数。使用场景:适用于URL中的查询参数或POST请求中的表单数据......
  • Nuxt.js 应用中的 request 事件钩子
    title:Nuxt.js应用中的request事件钩子date:2024/12/4updated:2024/12/4author:cmdragonexcerpt:在构建现代Web应用时,处理请求是核心内容之一。无论是从后端获取数据,还是处理用户请求、验证和授权,正确地处理请求能够确保应用的稳定性、可维护性和用户体验。Nuxt.......
  • Loadrunner, Error -27979:Requested form not found解决方案
    loadrunner使用HTML-basedscriptlevel录制脚本成功后,回放失败,提示**Error-27979:Requestedformnotfound...** 解决方式:1.重新选择录制record→RecordingOptions 2.选择Recording→HTMLAdvanced;Scripttype选择AscriptcontainingexplicitURLsonly.......