小编nar*_*rak的帖子

React/Flux和xhr /路由/缓存

这更像是"你的意见是什么/我在思考这个问题时是否正确?" 题.

在理解Flux的同时尽量严格,我试图找出XHR调用的位置,处理websockets /外部刺激,路由发生等等.

从我阅读的文章,访谈和浏览facebook示例中,我可以通过几种方式处理这些问题.严格遵循flux,Action创建者是执行所有XHR调用的人,可能PENDING/SUCCESS/FAILURE在请求完成之前和之后触发Actions.
另一个是,来自facebook的Ian Obermiller,所有READ(GET)请求都由Stores直接处理(没有Action创建者/调度员的参与),WRITE(POST)请求由Action Creators处理整个action>dispatcher>store流程.

我们提出/想要坚持的一些理解/结论:

  1. 理想情况下,进出系统的任何事情都只能通过Actions进行.
  2. 离开/进入系统的异步调用将具有PENDING/PROGRESS(think file uploads)/SUCCESS/FAILURE动作.
  3. 整个App中的单一调度程序.
  4. Action>Dispatcher>Store 调用是严格同步的,以坚持调度无法在内部启动另一个调度以避免链接事件/操作.
  5. 存储在视图中持久存在(考虑到它是单页面应用程序,您希望能够重用数据)

我们得出一些结论的一些问题,但我并不完全满意:

  1. 如果采用Stores do Reads和Actions to Writes的方法,您如何处理多个Stores可能能够使用来自单个XHR调用的数据的情况?
    示例:TeamStore发出的API调用/api/teams/{id}返回类似于:

        {  
            entities: {  
                teams: [{  
                    name: ...,  
                    description: ...,  
                    members: [1, 2, 4],  
                    version: ...  
                }],  
                users: [{  
                    id: 1  
                    name: ...,  
                    role: ...,  
                    version: ...  
                },  
                {  
                    id: 2  
                    name: ...,  
                    role: ...,  
                    version: ...  
                },  
                {  
                    id: 3  
                    name: ...,  
                    role: ...,  
                    version: ...  
                }]  
            } …
    Run Code Online (Sandbox Code Playgroud)

javascript reactjs reactjs-flux

12
推荐指数
2
解决办法
2040
查看次数

标签 统计

javascript ×1

reactjs ×1

reactjs-flux ×1