javascript - 使用 ES6 模块进行参数导入?

标签 javascript ecmascript-6 ecmascript-harmony

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);

有没有更优雅的方法来做到这一点?

最佳答案

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

关于javascript - 使用 ES6 模块进行参数导入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30077673/

相关文章:

javascript - 发电机发电值差异

javascript - 无法让 jQuery 识别鼠标悬停在图像上

javascript - $(this).html 在 jquery 中不起作用

javascript - 为什么我的 ES6(使用 Babel)类说 `this` 在实例方法中未定义?

javascript - 你如何检查 ECMAScript 6 类和函数之间的区别?

javascript - ES7 使用await 生成器从一系列promise 中获取结果

javascript - JavaScript 中的动态服务定位器?

javascript - IE 不对单引号/撇号进行 url 编码

javascript - 如果点击一个 Accordion ,如何最小化其他 Accordion

javascript - 如何在一个 React 组件中输入数据并使其在另一个 React 组件中渲染?