首页 文章

如何使用Facebook Flux调用节点服务器以获取Web应用程序中的数据?

提问于
浏览
1

我是反应灵敏的新手 . 我正在尝试使用flux体系结构构建一个简单的应用程序,我遇到了如何从来自节点服务器获取数据的问题 . 我搜索过这个以及我找到的每个链接,只是表明我必须使用ajax从服务器获取数据,但我不想这样做 .

由于我当前的应用程序是基于Angular和节点js构建的,我可以轻松调用服务器通过 $http 服务获取数据 . 但是我没有在反应或流量中找到那种东西,即使在反应文件中没有可用的路由概念,我们需要使用第三方组件进行路由 .

所以我的问题是有任何方式,以便我可以从服务器获取我的数据而不使用ajax和路由不必使用第三方组件 . 请帮我搞清楚 . 这是我找到的一些链接:

http://facebook.github.io/react/tips/initial-ajax.html

http://www.code-experience.com/async-requests-with-react-js-and-flux-revisited/

http://madebymany.com/blog/beyond-the-to-do-app-writing-complex-applications-using-flux-react-js

3 回答

  • 1

    React将自己称为MVC中的View,并由您来处理模型和控制器 . 这个想法是它足够开放,可以使用你想要的任何库进行ajax和路由 . 就路由而言,React Router通常是我见过的首选解决方案 . 对于ajax /数据获取,Facebook正在努力开源他们的解决方案,名为Relay但是现在,你可以使用jQuery,vanilla js或任何获取数据的第三方javascript插件 .

    React并不意味着取代Ember / Angular / WhateverJS,至少不是全部 . 它仅对您的应用程序的视图部分负责 . 它的唯一目的是绘制视图,然后在更改数据时智能地重绘它们 . 这意味着您必须处理路由和数据提取 . 此外,Flux只是一种设计模式,它不是您需要和使用的库 .

  • 0

    Superagent是ajax的一个很好的替代品 . 与在角度中使用$ http并没有什么不同 .

    var request = require('superagent');
    
    request
      .post('/api/pet')
      .send({ name: 'Manny', species: 'cat' })
      .set('X-API-Key', 'foobar')
      .set('Accept', 'application/json')
      .end(function(error, res){
    
      });
    

    最好在一个地方创建一个收集所有这些内容的模块,您可以在任何需要进行实际API调用的地方使用它 .

    至于路由,如果你不想使用像ReactRouter这样的第三方库,我认为应该可以使用带有 window.location 的switch / case语句来自己滚动,并根据当前的url呈现不同的组件 . 您还必须将服务器上的有效路由设置为指向应用程序的相同入口点,或使用全能路由 .

    看起来React / Flux似乎是“不完整的”,因为他们缺乏内置的方法来做这些事情,但他们很好地解决了他们设计的具体问题 . 这是使用它们的一个很好的理由,即使它意味着将它们与其他工具结合起来以获得您想要的功能 .

  • 1

    Flux是一个建筑概念 . 特定实现可以包括用于从服务器获取数据的帮助程序,但通常它们不会,因为这不是Flux解决的问题,并且您的应用程序与服务器通信的方式可以根据特定目标而不同 .

    您可以使用您喜欢的任何方式(和库)来获取数据,但是没有内置的解决方案 .

    谈论路由器 . 同样,这不是Flux解决的问题 . 有些应用需要路由,有些则不需要 . 没有理由将其包含在某些实现中 .

    没有内置的解决方案 . React最广泛使用的路由库是:https://github.com/rackt/react-router

    我强烈建议您从基础知识开始,并详细阅读概述:http://facebook.github.io/flux/docs/overview.html

相关问题