Jquery 使用React处理ajax

Jquery 使用React处理ajax,jquery,ajax,backbone.js,reactjs,Jquery,Ajax,Backbone.js,Reactjs,在相当传统的web应用程序中,我应该如何处理ajax请求?特别是使用React for View,同时拥有一个处理文本等数据的后端,但使用ajax自动保存用户交互,如切换选项或向服务器发送帖子 我应该使用jQuery来实现这一点,还是像主干这样的东西更有益?万一有人无意中发现了这一点并且不知道,jQuery使发送AJAX调用变得非常容易。因为React只是JavaScript,所以它的工作方式与任何其他jQueryAjax调用一样 React自己的文档使用jQuery进行AJAX调用,因此我认为

在相当传统的web应用程序中,我应该如何处理ajax请求?特别是使用React for View,同时拥有一个处理文本等数据的后端,但使用ajax自动保存用户交互,如切换选项或向服务器发送帖子


我应该使用jQuery来实现这一点,还是像主干这样的东西更有益?

万一有人无意中发现了这一点并且不知道,jQuery使发送AJAX调用变得非常容易。因为React只是JavaScript,所以它的工作方式与任何其他jQueryAjax调用一样

React自己的文档使用jQuery进行AJAX调用,因此我认为这对于大多数目的来说已经足够好了,无论是使用哪个堆栈

componentDidMount: function() {
    $.ajax({
      url: this.props.url,
      dataType: 'json',
      cache: false,
      success: function(data) {
        this.setState({data: data});
      }.bind(this),
      error: function(xhr, status, err) {
        console.error(this.props.url, status, err.toString());
      }.bind(this)
    });
  },

我不会使用JQuery,因为AJAX调用实际上没有那么复杂,JQuery是一个相当大的依赖项。请参阅vanillajs关于在没有库的情况下进行AJAX调用的说明:

您可以使用JavaScript获取API,它还支持GET和POST,并且具有构建承诺

fetch('/api/getSomething').then(function() {...})

请查看Facebook关于
补充工具的官方文档,网址为

他们只是建议很少使用像API这样的数据获取API

  • 浏览器和node.js基于Promise的HTTP客户端
  • 无需介绍
  • 用于AJAX请求的轻量级“同构”库
  • 再次使用AJAX。包括对xmlHttpRequest、JSONP、CORS和CommonJS的支持。浏览器支持可以追溯到IE6

我个人最喜欢的是
axios
,因为它可以在浏览器和nodejs env中运行,甚至官方的js网站也推荐同样的

我绝对建议您使用
获取API
。它很容易理解,支持所有方法,您可以使用
async/await
而不是
promise/then
和callback hell

例如:

fetch(`https://httpbin.org/get`,{
    method: `GET`,
    headers: {
        'authorization': 'BaseAuth W1lcmxsa='
    }
}).then((res)=>{
    if(res.ok) {
        return res.json();
    }
}).then((res)=>{
    console.log(res); // It is like final answer of XHR or jQuery Ajax
})
以更好的方式或异步/等待方式:

(async function fetchAsync () {
    let data = await (await fetch(`https://httpbin.org/get`,{
                                method: `GET`,
                                headers: {
                                    'authorization': 'BaseAuth W1lcmxsa='
                                }
                            })).json();
                      console.log(data);
})();

看看flux,看看人们是如何处理AJAX的:您可以使用任何一种。这取决于你。如果您已经准备好了一些主干内容,您可以继续使用它。我使用jQuery使AJAX调用与Django后端一起使用React。不过,对于AJAX包装器来说,这是一个巨大的库。他们下载的2.x的压缩版本是82KB。这对于一个包装器来说太多了,它可以用足够少的代码行来编写,以适应屏幕。是的,你说得对,但是除了Ajax调用之外,我还有很多东西要用jQuery。用React下载它很痛苦,但是jQuery对我来说仍然太有帮助了,我无法完全摆脱它。关于jQuery的巨大性:备选方案包括superagent和reqwest。两者都有非常相似的API,但相比之下superagent只有10kB。您只需添加jQuery的ajax部分即可:I Get$未定义如何处理取消正在进行的请求?目前,这对于react-native来说不是一个好选项:当然,您可以将fetch与react-native一起使用(I-do)。您提供的链接显示了浏览器兼容性。反应不是一个浏览器(混合)技术,所以你可以只包括通过NPM获取。对于任何想在你的前端使用FETCH的人,请考虑没有IE支持,除非你使用某种类型的PultPube,即使如此,仅限于IE 10 +。如果你正在使用这些天的反应,你很可能(应该是)。无论如何,使用Babel以便获取是可以的。不建议使用
jQuery
,我更喜欢使用
fetch
。确实如此“fetch”是现在使用
react ajax
执行HTTP请求的goto解决方案吗?这太荒谬了,我找不到它,我更喜欢使用
fetch
async/await
来更好地理解和流畅地编码。