我应该如何在相当传统的 Web 应用程序中处理 ajax 请求?特别是使用 React 进行视图,同时具有处理文本等数据的后端,但使用 ajax 自动保存用户交互,例如切换选项或喜欢帖子到服务器。
我应该为此使用jQuery,还是像Backbone这样的东西更有益?
我应该如何在相当传统的 Web 应用程序中处理 ajax 请求?特别是使用 React 进行视图,同时具有处理文本等数据的后端,但使用 ajax 自动保存用户交互,例如切换选项或喜欢帖子到服务器。
我应该为此使用jQuery,还是像Backbone这样的东西更有益?
以防万一有人偶然发现并且不知道,jQuery 使发送 AJAX 调用变得非常容易。由于 React 只是 JavaScript,它会像任何其他 jQuery AJAX 调用一样工作。
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)
});
},
请Complementary Tools
在https://github.com/facebook/react/wiki/Complementary-Tools查看 Facebook 的官方文档
他们只是推荐一些数据获取 API 之类的
我个人最喜欢的axios
原因是 promises 可以在浏览器和 nodejs 环境中使用,甚至官方 reactJS 网站在AJAX 和 API上也推荐相同的
你可以使用 JavaScript Fetch API,它也支持 GET 和 POST,而且它有构建 Promises。
fetch('/api/getSomething').then(function() {...})
我不会使用 JQuery,因为 AJAX 调用实际上并没有那么复杂,而且 JQuery 是一个非常大的依赖项。请参阅 vanillajs 关于在没有库的情况下进行 AJAX 调用的说明:http ://vanilla-js.com/
我绝对建议您使用Fetch API
. 非常容易理解,支持所有方法,可以使用async/await
代替promise/then
和回调地狱。
例如:
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/await
方式:
(async function fetchAsync () {
let data = await (await fetch(`https://httpbin.org/get`,{
method: `GET`,
headers: {
'authorization': 'BaseAuth W1lcmxsa='
}
})).json();
console.log(data);
})();