如何强制执行商店功能和私有模型。如果我的商店是
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吗?
答案 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并使用相同的原则,将函数保持为私有,在传递给工厂方法的对象之外。