ES6模块的参数导入



ES6将一个不错的模块系统带入JavaScript中。这样定义的模块:

export default {
   ....
};

可以使用import myLib from "myModule"轻松导入到源中。

但是,如果模块导出这样的"构造函数"功能:

export default ( actions ) =>  Reflux.createStore ( {
    state: {
         .....
    },
    config: {
         .....
    },
    init: function() {
        this.listenToMany ( actions );
    },
}

您可以导入构造函数,然后使用

执行它
import MyStoreConstructor from "./datastore";
var store = MyStoreConstructor(actions);

有什么优雅的方法可以做到吗?

您并不是真正导出构造函数,它更多是工厂(并且应该以良好的风格处于小写),而且我认为它不会比这更小。工厂将如何知道行动?此外,模块最多只能一次评估一次(至少在我知道的每个模块系统中),以避免不必要的副作用 - 随后的每个请求都将获得一种缓存的版本。您可以像Angularjs一样使用依赖项注入库,但这是一个单独的概念。

最新更新