如何让我的商店在React回流中保密

时间:2016-02-10 11:09:58

标签: javascript reactjs refluxjs

如何强制执行商店功能和私有模型。如果我的商店是

var employeeActions = Reflux.createActions(['addEmployee']);

var empStore = Reflux.createstore({
listenables: [employeeActions],
model: {
          Total:0,
          employees:[]
}
onAddEmployee: function(employee){
   this.model.employees.push(employee);
}
});

即使助焊剂说行动 - >存储。当前的对象结构不会阻止团队中的开发人员调用empStore.OnAddEmployee吗?

1 个答案:

答案 0 :(得分:1)

您的商店应该在一个模块中,假设您使用的是browserify或webpack或类似的东西,并require您的模块。因此,您在模块中声明但未包含在发送到Reflux.createStore()的对象中的任何变量/对象/函数都是私有的。

这样的事情:

var employeeActions = Reflux.createActions(['addEmployee']);

var model: {
          Total:0,
          employees:[]
}

var empStore = Reflux.createstore({
listenables: [employeeActions],

onAddEmployee: function(employee){
   model.employees.push(employee);
}
});

我建议在对象上保留onAddEmployee函数,如果使用listenables mixin,请依靠回流来连接所有内容。否则,只需按照github上的示例:https://github.com/reflux/refluxjs#creating-data-stores并使用相同的原则,将函数保持为私有,在传递给工厂方法的对象之外。