基本通量架构 - 重复的常量值?
Posted
技术标签:
【中文标题】基本通量架构 - 重复的常量值?【英文标题】:Basic Flux architecture - duplicate constants values? 【发布时间】:2015-11-21 07:27:21 【问题描述】:我正在尝试了解 Flux 的工作原理,但对一件特定的事情感到困惑 - 当两个不同视图的操作常量具有相同的值时会发生什么?
为了说明我困惑的根源 - 在 Flux 架构的 Store 中,我们应该在我们的应用程序中向一个调度程序注册一个回调。 (因此,这个问题的一个假设是我们的前端应用程序应该只有一个调度程序 - 这似乎是推荐的方法)。
所以在这里,在 Store 中,我们向 Flux 调度程序注册了一个回调:
AppDispatcher.register(function (payload)
var action = payload.action;
var text;
switch (action.actionType)
// Respond to CART_ADD action
case FluxCartConstants.CART_ADD:
add(action.sku, action.update);
break;
// Respond to CART_VISIBLE action
case FluxCartConstants.CART_VISIBLE:
setCartVisible(action.cartVisible);
break;
// Respond to CART_REMOVE action
case FluxCartConstants.CART_REMOVE:
removeItem(action.sku);
break;
default:
return true;
// If action was responded to, emit change event
thisStore.emitChange();
return true;
);
这是我的 Flux 应用程序的常量:
//FluxCartConstants.js
var constants =
CHOLO:'CHOLO',
ROLO:'ROLO',
YOLO:'YOLO',
CART_ADD:'CART_ADD'
//OtherConstants.js
var constants =
CART_FOO:'CART_FOO',
CART_VISIBLE:'CART_VISIBLE',
CART_ADD:'CART_ADD' //uh-oh, this constant has the same value as FluxCartConstants.CART_ADD
所以我的问题是——基本的 Flux 架构应该如何处理重复的常量值?认为您可能不会意外地有重叠的常量似乎很疯狂?你是应该确保它们具有独特的价值还是我错过了一些关于通量的东西?
【问题讨论】:
【参考方案1】:是的,所有动作常量都必须是唯一的。
我看不出这里有什么问题,在编程中有很多情况你必须确保某些键是唯一的......
同样,您的应用程序中应该只有一个调度程序。
【讨论】:
【参考方案2】:由于操作会发送到您的所有商店,因此它们必须具有唯一值。 这里的一个常见做法是在您的操作前加上当前的“模块”名称:
FluxCartConstants.js
var FluxCartActionTypes =
FLUX_CART_ADD: "FLUX_CART_ADD"
var OtherModuleActionTypes =
OTHER_CART_ADD: "OTHER_CART_ADD"
通过将所有ActionTypes
常量放在同一个文件中,您可以一眼看出是否没有重复。在此操作的“域名”前面添加可防止重复。
【讨论】:
以上是关于基本通量架构 - 重复的常量值?的主要内容,如果未能解决你的问题,请参考以下文章