我正在阅读有关Flux的信息,但示例Todo应用程序对于我来说太简单了,无法理解一些关键点。
想象一下像Facebook这样的具有 用户个人资料页
的单页应用程序。在每个用户个人资料页面上,我们要无限滚动地显示一些用户信息及其最新帖子。我们可以从一个用户个人资料导航到另一个。
在Flux体系结构中,这将与商店和调度员相对应吗?
我们会为PostStore
每个用户使用一个,还是会有某种全球商店?调度程序呢,我们将为每个“用户页面”创建一个新的调度程序,还是使用单例?最后,体系结构的哪一部分负责管理“特定于页面的”商店的生命周期以响应路线更改?
此外,单个伪页面可能具有相同类型的多个数据列表。例如,个人资料页上,我想同时显示 关注 和 跟随
。UserStore
在这种情况下,单例如何工作?将UserPageStore
管理followedBy: UserStore
和follows: UserStore
?
在Flux应用程序中,应该只有一个Dispatcher。所有数据都流经该中央集线器。拥有单例分派器可以使其管理所有商店。当您需要商店1更新自身,然后根据操作和商店1的状态更新商店2时,这一点就变得很重要。Flux假定这种情况在大型应用程序中是偶然的。理想情况下,这种情况将不需要发生,并且开发人员应尽可能避免这种复杂性。但是,当时间到时,单例分派器已准备好处理它。
商店也是单身人士。它们应保持尽可能独立和分离-一个独立的Universe,可以从Controller-
View查询。进入商店的唯一途径是通过向分派器注册的回调。唯一的出路是通过getter函数。商店在状态改变时也会发布事件,因此Controller-
Views可以知道何时使用getter查询新状态。
在您的示例应用中,会有一个PostStore
。该商店可以在“页面”(伪页面)上管理帖子,该页面更类似于FB的Newsfeed,其中帖子来自不同的用户。它的逻辑域是帖子列表,它可以处理任何帖子列表。当我们从伪页面移动到伪页面时,我们想重新初始化存储的状态以反映新状态。我们可能还希望将先前的状态缓存在localStorage中,作为在伪页面之间来回移动的优化,但是我的意愿是设置一个PageStore
等待所有其他存储的,管理与所有存储上的localStorage的关系的存储。伪页面,然后更新其自身的状态。请注意,这PageStore
将不存储任何帖子-
这是PostStore
。因为伪页面是它的域,所以它只会知道特定的伪页面是否已被缓存。
该PostStore
会有一个initialize()
方法。即使这是第一次初始化,此方法也始终会清除旧状态,然后根据通过操作器通过分派器接收到的数据来创建状态。从一个伪页面移动到另一个伪页面可能涉及一个PAGE_UPDATE
动作,该动作将触发的调用initialize()
。关于从本地缓存中检索数据,从服务器中检索数据,乐观渲染和XHR错误状态,有很多细节需要解决,但这是总的思路。
如果某个特定的伪页面不需要应用程序中的所有商店,那么我不完全确定除了内存限制之外,还有什么理由可以销毁那些未使用的页面。但是商店通常不会消耗大量内存。您只需要确保在要销毁的Controller-
View中删除事件侦听器即可。这是在React的componentWillUnmount()
方法中完成的。
我正在阅读关于Flux的文章,但是Todo应用程序的例子太简单了,我无法理解其中的一些关键点。 想象一下,像Facebook这样的单页应用程序拥有用户配置文件页面。在每个用户配置文件页,我们想显示一些用户信息和他们的最后一个帖子,无限滚动。我们可以从一个用户配置文件导航到另一个用户配置文件。 在Flux架构中,这将如何对应于存储和调度器? 我们是为每个用户使用一个,还是使用某种全局存储?那么dis
问题内容: 我正在开发一个应用程序,并且已经开始与和一起使用。Web容器为。 我对豆子的生命周期感到非常困惑,因此我需要一个很好的建议来清除一些想法。通常,我已阅读的内容应主要在容器中使用,并使用注释将其注入。因此,然后容器要注意其使用寿命。但是,如果您不使用容器(如),那么我需要管理自己的生活。 现在,使用哪种方法是我最好的选择?我现在正在做的事情如下: 因此,基本上,我只是使用Plain 来完
我试图使用django创建一个项目,并填充数据库,我的问题是,当我尝试创建一个新对象时,我得到了这个错误:重复键值违反了唯一约束,因为数据库已经填充,我可以做什么来更改它,使Postgres管理它或Djang0获得正确的序列?提前感谢
该节将带领大家了解Kubernetes中的基本概念,尤其是作为Kubernetes中调度的最基本单位Pod。 本节中包括以下内容: 了解Pod的构成 Pod的生命周期 Pod中容器的启动顺序模板定义 Kubernetes中的基本组件kube-controller-manager就是用来控制Pod的状态和生命周期的,在了解各种controller之前我们有必要先了解下Pod本身和其生命周期。
掌握构建生命周期 作为一个构建脚本的开发者,你不应该局限于编写任务动作或者配置逻辑,有时候你想在指定的生命周期事件发生的时候执行一段代码。生命周期事件可以在指定的生命周期之前、之中或者之后发生,在执行阶段之后发生的生命周期事件就该是构建的完成了。 假设你希望在构建失败时能够在开发阶段尽早得到反馈,给构建生命周期事件添加回调有两种方法:一是通过闭包,二是实现 Gradle API 的一个监听接口,G
如果我编写一个简单的servlet应用程序,那么在我的servlet类中,我将扩展http servlet。这让容器知道我的类是一个servlet,它将管理servlet的“生命周期”。init、doget()、destroy()等。 但是Spring MVC framweock控制器类不扩展任何servlet类。它是一个有自己自定义方法的POJO。现在我可以使用请求映射单独调用这些方法。 但是,