React ajax

这篇博客介绍了React如何处理Ajax请求,重点讲解了轻量级库Axios的使用,包括GET和POST请求示例,并提到了Fetch作为原生的Ajax替代方案。同时,讨论了消息订阅-发布机制,推荐使用PubSubJS库进行实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前置说明

  1. React本身只关注于界面, 并不包含发送ajax请求的代码
  2. 前端应用需要通过ajax请求与后台进行交互(json数据)
  3. react应用中需要集成第三方ajax库(或自己封装)

常用的ajax请求库

  1. jQuery: 比较重, 如果需要另外引入不建议使用
  2. axios: 轻量级, 建议使用
      1. 封装XmlHttpRequest对象的ajax
      2.  promise风格
      3. 可以用在浏览器端和node服务器端

axios

文档

GitHub - axios/axios: Promise based HTTP client for the browser and node.js

相关API

  1. GET请求

axios.get('/user?ID=12345')

  .then(function (response) {

    console.log(response.data);

  })

  .catch(function (error) {

    console.log(error);

  });

axios.get('/user', {

    params: {

      ID: 12345

    }

  })

  .then(function (response) {

    console.log(response);

  })

  .catch(function (error) {

    console.log(error);

  });

      2.POST请求

axios.post('/user', {

  firstName: 'Fred',

  lastName: 'Flintstone'

})

.then(function (response) {

console.log(response);

})

.catch(function (error) {

console.log(error);

});

案例—github用户搜索

 效果

 

请求地址: https://api.github.com/search/users?q=xxxxxx

消息订阅-发布机制

  1. 工具库: PubSubJS
  2. 下载: npm install pubsub-js --save
  3. 使用:
    1. import PubSub from 'pubsub-js' //引入
    2. PubSub.publish('delete', data) //发布消息
    3. PubSub.subscribe('delete', function(data){ }); //订阅 

扩展:Fetch 

 文档

  1. fetch documentation
  2. https://segmentfault.com/a/1190000003810652

特点

  1. fetch: 原生函数,不再使用XmlHttpRequest对象提交ajax请求
  2. 老版本浏览器可能不支持

相关API

  1. GET请求

fetch(url).then(function(response) {

    return response.json()

  }).then(function(data) {

    console.log(data)

  }).catch(function(e) {

    console.log(e)

  });

     2.POST请求

  fetch(url, {

    method"POST",

    bodyJSON.stringify(data),

  }).then(function(data) {

    console.log(data)

  }).catch(function(e) {

    console.log(e)

  })

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值