React学习(网络请求)

8 篇文章 0 订阅
2 篇文章 0 订阅

  一开始在弄网络请求的时候我还以为有很多东西要弄,但是发现其实React的网络请求也就那么几种,首先是自带的fetch请求,这种最基础也不用特意安装;其次是和vue相同的axios,这玩意很通用啊,再者还有专门的react-axios,不过我并没有去研究或者看这个,因为之前用过vue,所以对于axios比较熟悉。

  这篇文章主要介绍的就是axios,但是要注意的是和vue不同点就是在初始化的调用方面的处理。

ps:vue是在初始化之后将初始化的变量赋值给vue的自定义全局变量当中,但是React是直接调用的,同时如果自定义初始化则不能调用axios.create()方法,否则会导致拦截器失效。

1、安装axios

执行npm命令:npm isntall axios --save

2、初始化基础请求
import netWorkManager from 'axios'
import logInfo from "../common/Log";
//基础api
const BASE_URL = "http://***************/debug";

//超时时间
const TIMEOUT = 5000;
//设置基础地址
netWorkManager.defaults.baseURL = BASE_URL;
//设置超时时间
netWorkManager.defaults.timeout = TIMEOUT;
3、初始化拦截器
//请求拦截
logInfo("netOptions:", "初始化请求拦截");
netWorkManager.interceptors.request.use(function (requestConfig) {
    logInfo("netOptions:", "请求拦截开始");
    logInfo("netOptions:", "请求base地址---" + requestConfig.baseURL);
    logInfo("netOptions:", "请求地址---" + requestConfig.url);
    logInfo("netOptions:", "请求参数---" + JSON.stringify(requestConfig.data));
    logInfo("netOptions:", "请求拦截结束");
    return requestConfig;
}, function (error) {

});
//响应拦截
logInfo("netOptions:", "初始化响应拦截");
netWorkManager.interceptors.response.use(response => {
    logInfo("netOptions:", "响应拦截开始");
    logInfo("netOptions:", "响应拦截获取响应code---" + response.data.stateCode);
    if (response.data.stateCode === 200) {
        logInfo("netOptions:", "响应拦截结束");
        return response.data.data
    } else {
        logInfo("netOptions:", "响应拦截结束");
        return response
    }
}, error => {

});

4、发起请求
/**
 * 登录请求,
 * @param values 登录参数
 */
export function loginApi(values) {
    logInfo("netOptions:", "发起登录请求")
    netWorkManager.post(getRequestUrl(API_LIST.loginUrl), values)
        .then(response => {
            logInfo("netOptions:", "登录响应数据---" + JSON.stringify(response));
        }).catch(error => {
        logInfo("netOptions:", "登录异常数据---" + error);
    })
}

全部代码如下

import netWorkManager from 'axios'
import logInfo from "../common/Log";


//基础api
const BASE_URL = "http://***********************/debug";

//超时时间
const TIMEOUT = 5000;
//设置基础地址
netWorkManager.defaults.baseURL = BASE_URL;
//设置超时时间
netWorkManager.defaults.timeout = TIMEOUT;
//请求拦截
logInfo("netOptions:", "初始化请求拦截");
netWorkManager.interceptors.request.use(function (requestConfig) {
    logInfo("netOptions:", "请求拦截开始");
    logInfo("netOptions:", "请求base地址---" + requestConfig.baseURL);
    logInfo("netOptions:", "请求地址---" + requestConfig.url);
    logInfo("netOptions:", "请求参数---" + JSON.stringify(requestConfig.data));
    logInfo("netOptions:", "请求拦截结束");
    return requestConfig;
}, function (error) {

});
//响应拦截
logInfo("netOptions:", "初始化响应拦截");
netWorkManager.interceptors.response.use(response => {
    logInfo("netOptions:", "响应拦截开始");
    logInfo("netOptions:", "响应拦截获取响应code---" + response.data.stateCode);
    if (response.data.stateCode === 200) {
        logInfo("netOptions:", "响应拦截结束");
        return response.data.data
    } else {
        logInfo("netOptions:", "响应拦截结束");
        return response
    }
}, error => {

});

//api列表
const API_LIST = {
    loginUrl: "/user/login"
};

/**
 * 获取请求数据
 * @param url 请求参数
 * @return {*} 请求地址
 */
function getRequestUrl(url) {
    return url
}


/**
 * 登录请求,
 * @param values 登录参数
 */
export function loginApi(values) {
    logInfo("netOptions:", "发起登录请求")
    netWorkManager.post(getRequestUrl(API_LIST.loginUrl), values)
        .then(response => {
            logInfo("netOptions:", "登录响应数据---" + JSON.stringify(response));
        }).catch(error => {
        logInfo("netOptions:", "登录异常数据---" + error);
    })
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
*** 开发的一个用于构建用户界面的 JavaScript 库。它采用组件化的开发模式,使得构建复杂的 UI 变得简单、高效。 要学习 React,你可以按照以下步骤进行: 1. 掌握 JavaScript:React 是基于 JavaScript 的,所以你需要熟悉 JavaScript 的语法、特性和基本原理。 2. 学习 HTML 和 CSS:React 主要用于构建用户界面,所以你需要对 HTML 和 CSS 有一定的了解。 3. 了解 React 的基本概念:学习 React 的前提是要了解其核心概念,如组件、状态、属性等。 4. 安装和配置 React:在开始使用 React 之前,需要先安装和配置开发环境,可以使用 create-react-app 脚手架工具快速搭建一个 React 项目。 5. 学习 JSX:JSX 是一种类似于 HTML 的语法扩展,用于在 JavaScript 中编写 React 组件。学习 JSX 将帮助你更好地理解和编写 React 组件。 6. 编写 React 组件:掌握 React 组件的生命周期、状态管理和事件处理等方面的知识,开始编写自己的 React 组件。 7. 理解 React 路由:React Router 是一个行的第三方库,用于实现前端路由。了解和使用 React Router 将帮助你构建复杂的单页应用。 8. 掌握 React 生态系统:学习并使用一些常用的 React 相关库,如 Redux(状态管理)、Axios(网络请求)、React Bootstrap(UI 组件库)等,可以提高开发效率。 9. 实践项目:通过实践项目,将学到的知识应用到实际中,加深对 React 的理解和掌握。 10. 持续学习和探索:React 生态系统在不断发展,新的技术和工具层出不穷。要保持学习的状态,关注最新的 React 动态,并不断进行实践和探索。 希望以上步骤对你的 React 学习有所帮助!如果有更多关于 React 的问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值