- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 redux 的新手,正在编写一个前端应用程序,该应用程序保存全局状态,该状态在启动时通过 ajax 检索,然后在检索新数据时通过 poll/push 更新。在导航到每个 url 时,有一个 actor 会分派(dispatch)一个操作,然后调用一个缩减器来覆盖 viewState
的一部分。具有此过滤 View 的对象 globalState
。例如导航至网址/items/filter/a
将调整viewState
到以下内容:
state {
viewState: {
items: [{id: 1, value: 'a'}]
}
globalState: {
items: [{id: 1, value: 'a'},
{id: 2, value: 'b'},
{id: 3, value: 'c']}
}
}
完成此步骤后 ReactDOM.render()
通过另一个参与者调用,所有组件都使用 viewState
中的更新值重新渲染。 (这不是我的代码,它直接来自独 Angular 兽入门包)
我想知道 a) 这是否是构建此类应用程序的明智方法。 b) 初始化 globalState
的最佳方式是什么?应用程序启动时的变量,然后监听更新(如果具有该 id 的对象当前位于 viewState
中,则可能会更新 viewState
)
最佳答案
我没有使用 Redux 的经验,因为我们在项目中使用了普通 Flux,但我们有类似的场景,我们的解决方案可能也适合您的场景。
总的来说,我认为这是分割全局状态的一个很好的策略。还有一些库可以执行此操作(例如 Facebook Relay),它们可能会为您提供此功能以及更多开箱即用的功能。
关于初始状态的渲染,我们所做的是将所有组件设置为能够很好地处理空数据集,即,如果它们没有接收到数据(在初始渲染时),它们只会渲染空的 div
和一个装载机。然后,当从服务器检索到所有数据时(我们使用 Q 库使用 Promise 进行同步),我们触发一个 BeginRender 操作,这会导致所有现在填充了数据的存储触发一个改变事件。订阅存储的组件接收事件并调用存储方法来检索数据。一旦它们收到新数据,组件状态就会更新,并且组件会使用数据重新渲染。
关于javascript - React 和 Redux 应用程序设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36115855/
如何有效地设计一个C++模块化程序?如何学习? 最佳答案 对于初学者,您可能希望采取“暴力”过程: 1. 在一个文件中写一个简单的main函数。 2. 增加一些功能,先编译再测试。 3.重构(在谷歌中
前言 有人说现在记事类app这么多,市场这么卷,为什么还想做一个笔记类App? 一来,去年小孩刚出生,需要一个可以记录喂奶时间的app,发现市面上没有一款app能够在两步内简单记录一个时间,可能i
我正处于 Web 应用程序的设计阶段,该应用程序允许用户创建工作请求,并且工作人员可以针对这些请求投入时间。该应用程序还将为主管提供报告功能,以获取每日总计、报告,并说明花费的时间、“成本分配”。 我
前言:很多刚刚接触编程的人都不知道怎么下手编写程序,特别是学习了新的知识点,不知道有什么用,那么本文将以简单的存储结构及简单的运算,条件语句,分支语句,循环语句结合,带来一个双人对战版五子棋,这是一
我正在尝试通过 C++ 多线程解决网络流量问题。 给定一个网络(所有节点都由弧连接,每个弧连接2个且只有2个结束节点,一个是输入节点,另一个是输出节点,每个节点可以有多个输入弧和输出弧),每个节点需要
我有一个关于编程和文件的问题。 while(current!=NULL) { if(current->Id_Doctor!='\0') { current=current->next;
下面的‘C’语句执行什么操作? star = star ^ 0b00100100; (A) 切换变星的第 2 位和第 5 位。 (B) 清除变量星的第 2 位和第 5 位以外的所有位。 (C) 设置除
我写了下面的代码: #include int main() { int a, b; printf("Enter values of a and b\n"); scanf(" %d%d "
我正在将 C 代码编程到 PIC 板上。我的问题是如何让我的程序计算按下按钮(RB0)的时间。然后它会显示所花费的时间并将其显示在液晶显示屏上。以毫秒为单位计算。下面是到目前为止我的代码。 /
我是一名优秀的程序员,十分优秀!