繁体   English   中英

在没有商店的情况下,使用ReactJS和Flux架构从服务器获取数据的正确方法是什么?

[英]What is the proper way to fetch data from server with ReactJS and Flux architecture where no Store presented?

我有一个用ReactJS库用js编写的前端应用程序。 我确实使用Flux架构来支持我的数据流。 开始时,前端初始化时,它会从服务器(如初始appstate)中检索数据-不同的实体,然后将它们保存到适当的存储区中。 这些存储触发“更改”事件,并且所有组件均使用来自存储的数据进行渲染。 后来,前端工作从这些存储中获取必要的数据。

现在,我需要构建一种报告,并且在前端构建报告效率不高。 我决定使用服务器上的原始数据进行所有计算并获得响应。 这应该通过AJAX请求完成。 根据Flux架构,我需要将它们存储起来,它们的组件应该从那里拿走。 但是,创建新商店(如ReportStore)没有任何意义。 我该如何处理? 我可以直接从组件请求数据并违反模式吗? 如果是,请提供示例代码。

为什么没有ReportStore Reports是您要在客户端上读取并显示在组件中的数据。 如果您想使用AJAX来启动数据加载,我将使用这样的帮助器组件来从前端请求您的报告。

var ReportViewActions = {

   getReports: function(requestObject) {

        $.ajax({
            url: '/reports',
            type: 'GET',
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            data: requestObject
        }).then(function(newReports) {
            AppDispatcher.handleViewAction({
                type: ReportActionTypes.RECEIVE_REPORTS,
                reports: newReports
            });
        });
   }
}

并在商店中收听事件。 这样,如果您要推送报告或让其他组件订阅ReportStore一切都已设置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM