最好在React和Reflux中使用一些大型或多个小型商店

比约恩盒子开始

不久前,我们开始了第一个基于Web的单页应用程序。我们从React和Flux(Facebook实施)开始,但是最近改用Reflux进行Flux实施。尽管Fb Flux实现了解“命名”商店事件的概念,但Reflux中不提供此概念。结果,侦听商店的每个组件总是对所有事件做出反应。下面是显示我们用户界面复杂性的参考图像。

屏幕样本

如您所见,我们有很多重复的组件(具有相同信息种类的多个选项卡,具有客户详细信息的多个组件以及具有详细信息的多个收货清单(甚至嵌套)。

此应用程序是用于维护所有数据(已打开的发票等)的现有.Net应用程序的新前端(UI)。Web应用程序可以使用Web服务(MVC Web API 2)与该后端进行通信。

给定如图所示的用户界面,我想知道我是否更适合于每个包含所有发票数据的发票的商店(具有引用所有发票数据的聚合商店),还是适合每个包含发票数据的商店。仅发票标题信息和其他一些存储每个详细信息窗格信息的存储。

预先感谢您的反应和建议!

Keith Yong

编辑:我误读了您的问题,似乎您想要一个反流答案,而我只给出了一个React答案。无论如何,我都会继续做下去,以备将来参考。

要做的方法是一个存储发票阵列的单一商店。因此,我将使服务器API输出如下所示:

[
    {
        invoice_no: 1,
        delivery: {
            // delivery details
        },
        customer: {
            // customer details
        }
        products: [
            {
                product_no: 1,
                product_details: {
                    ...
                }
            },
            {
                product_no: 5,
                product_details: {
                    ...
                }
            }
        ]
    },
    {
        invoice_no: 2,
        ...
    }
]

然后将其存储在<App>组件的状态中。我的React代码大致如下所示:

var App = React.createClass({
    getInitialState: function() {
        return { invoices: [] };
    },
    onComponentDidMount: function() {
        // make an ajax call to server to get
        // invoices data. Then on success:
        // this.setState({ invoices: data });
    },
    render: function() {
        <div>
            <InvoiceTabs invoices={this.state.invoices} />
        </div>
    }
});

// Everything here on out is just using props, so it's immutable data.
var InvoiceTabs = React.createClass({
    render: function() {
        var InvoiceComponents = this.props.invoices.map(function(invoice) {
            return (
                <Invoice invoice={invoice} />
            );
        });
    }
});

var Invoice = React.createClass({
    render: function() {
        var invoice = this.props.invoice;

        return (
            <li>
                <ProductsList products={invoice.products} />
                <DeliveryInfo delivery={invoice.delivery} />
                <InvoiceCalculator />
            </li>
        )
    }
});

// various other components

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

最好在React和Reflux中使用一些大型或多个小型商店

来自分类Dev

Apache Spark是否适合于大量的小型,快速计算和一些大型的非交互式计算?

来自分类Dev

最好在Fragment中使用setRequestedOrientation?

来自分类Dev

使用javascript创建多个元素,并在创建的元素中使用一些元素

来自分类Dev

最好在线性内核中使用svm?

来自分类Dev

最好在循环中使用NSString或NSMutableString

来自分类Dev

最好在YES / NOT值中使用BIT或BOOLEAN?

来自分类Dev

最好在64位中使用long或long long

来自分类Dev

需要使用小型计算器的一些指导,我正在研究Ruby

来自分类Dev

如何在我的 React 组件的 Jest 测试中使用一些数组原型?

来自分类Dev

在tcl中使用一个大型EXPR而不是几个小型EXPR更快吗

来自分类Dev

PHP MySQLi - 在一个过程中使用一些公式更新多个数据

来自分类Dev

在cakephp中使用.htaccess阻止一些内部URL

来自分类Dev

在cakephp中使用.htaccess阻止一些内部URL

来自分类Dev

一个大型Webapp还是多个小型Webapp?

来自分类Dev

最好的重载方法匹配...有一些无效的参数

来自分类Dev

rails 5 最好的地方只更新一些 <li>

来自分类Dev

使用R删除大型数据集中的一些特殊列

来自分类Dev

最好在MySQL中使用YES / NOT值使用BIT或BOOLEAN吗?

来自分类Dev

拍摄一些手动存储在Firebase存储中的图像,并在我的React Native应用中使用它

来自分类Dev

在Powershell中使用一些已知字符和未知两位数拆分字符串

来自分类Dev

在Visual Studio 2015中使用HTML5,CSS3和剃须刀的一些警告

来自分类Dev

使用Delphi Dll和一些问题

来自分类Dev

使用SELECT和一些DEFAULT值插入

来自分类Dev

一些std :: unique_ptr使用和“陷阱”

来自分类Dev

如何使用NSURLSession发布一些属性和图像

来自分类Dev

结合使用xargs参数和一些文本

来自分类Dev

使用 jQuery 和一些逻辑的 Twitter 消息

来自分类Dev

最好在ASP.NET MVC的视图层中使用Web服务类型?

Related 相关文章

  1. 1

    最好在React和Reflux中使用一些大型或多个小型商店

  2. 2

    Apache Spark是否适合于大量的小型,快速计算和一些大型的非交互式计算?

  3. 3

    最好在Fragment中使用setRequestedOrientation?

  4. 4

    使用javascript创建多个元素,并在创建的元素中使用一些元素

  5. 5

    最好在线性内核中使用svm?

  6. 6

    最好在循环中使用NSString或NSMutableString

  7. 7

    最好在YES / NOT值中使用BIT或BOOLEAN?

  8. 8

    最好在64位中使用long或long long

  9. 9

    需要使用小型计算器的一些指导,我正在研究Ruby

  10. 10

    如何在我的 React 组件的 Jest 测试中使用一些数组原型?

  11. 11

    在tcl中使用一个大型EXPR而不是几个小型EXPR更快吗

  12. 12

    PHP MySQLi - 在一个过程中使用一些公式更新多个数据

  13. 13

    在cakephp中使用.htaccess阻止一些内部URL

  14. 14

    在cakephp中使用.htaccess阻止一些内部URL

  15. 15

    一个大型Webapp还是多个小型Webapp?

  16. 16

    最好的重载方法匹配...有一些无效的参数

  17. 17

    rails 5 最好的地方只更新一些 <li>

  18. 18

    使用R删除大型数据集中的一些特殊列

  19. 19

    最好在MySQL中使用YES / NOT值使用BIT或BOOLEAN吗?

  20. 20

    拍摄一些手动存储在Firebase存储中的图像,并在我的React Native应用中使用它

  21. 21

    在Powershell中使用一些已知字符和未知两位数拆分字符串

  22. 22

    在Visual Studio 2015中使用HTML5,CSS3和剃须刀的一些警告

  23. 23

    使用Delphi Dll和一些问题

  24. 24

    使用SELECT和一些DEFAULT值插入

  25. 25

    一些std :: unique_ptr使用和“陷阱”

  26. 26

    如何使用NSURLSession发布一些属性和图像

  27. 27

    结合使用xargs参数和一些文本

  28. 28

    使用 jQuery 和一些逻辑的 Twitter 消息

  29. 29

    最好在ASP.NET MVC的视图层中使用Web服务类型?

热门标签

归档