导入 class 并使用带有 babel 转换器的 es6 模块调用静态方法
import class and call static method with es6 modules with babel transpiler
我有以下 class 定义:
class EmberReflux{
static createActions(actions) {
console.log(actions);
}
}
export { EmberReflux };
当我从不同的文件导入它时:
import EmberReflux from '../utils/ember-reflux';
let TodoActions = EmberReflux.createActions(
[
"addItem",
"undo",
"redo"
]);
export { TodoActions };
转译后的样子
define('ember-reflux/utils/todo-actions', ['exports', 'ember-reflux/utils/ember-reflux'], function (exports, EmberReflux) {
'use strict';
var TodoActions = EmberReflux['default'].createActions(["addItem", "undo", "redo"]);
exports.TodoActions = TodoActions;
});
我不确定 EmberReflux['default']
中的默认值是什么
我想像这样调用静态 class 方法:
EmberReflux.createActions
但我不得不这样称呼它:
EmberReflux.EmberReflux.createActions
您有两个选择:
像您一样导出 EmberReflux
:
export { EmberReflux };
然后像这样导入:
import { EmberReflux } from '../utils/ember-reflux';
导出时使用default
:
export default EmberReflux;
并导入它(就像您正在做的那样):
import EmberReflux from '../utils/ember-reflux';
在这两种情况下,您都可以使用 EmberReflux
,例如:
EmberReflux.createActions();
我没有足够的声誉来发表评论,alexpods 的回答是完美的,但是为了理解我们的朋友 Ced 的问题:
Why do we need the default in the 2nd example ? In other words why can't we have export EmberReflux directly ?
当你这样写的时候:
export { EmberReflux };
写法是一样的:
export { EmberReflux: EmberReflux };
这就是为什么你需要运行EmberReflux.EmberReflux,解决方法很简单:
export default EmberReflux;
class EmberReflux {
//...
}
module.exports = EmberReflux
我有以下 class 定义:
class EmberReflux{
static createActions(actions) {
console.log(actions);
}
}
export { EmberReflux };
当我从不同的文件导入它时:
import EmberReflux from '../utils/ember-reflux';
let TodoActions = EmberReflux.createActions(
[
"addItem",
"undo",
"redo"
]);
export { TodoActions };
转译后的样子
define('ember-reflux/utils/todo-actions', ['exports', 'ember-reflux/utils/ember-reflux'], function (exports, EmberReflux) {
'use strict';
var TodoActions = EmberReflux['default'].createActions(["addItem", "undo", "redo"]);
exports.TodoActions = TodoActions;
});
我不确定 EmberReflux['default']
我想像这样调用静态 class 方法:
EmberReflux.createActions
但我不得不这样称呼它:
EmberReflux.EmberReflux.createActions
您有两个选择:
像您一样导出
EmberReflux
:export { EmberReflux };
然后像这样导入:
import { EmberReflux } from '../utils/ember-reflux';
导出时使用
default
:export default EmberReflux;
并导入它(就像您正在做的那样):
import EmberReflux from '../utils/ember-reflux';
在这两种情况下,您都可以使用 EmberReflux
,例如:
EmberReflux.createActions();
我没有足够的声誉来发表评论,alexpods 的回答是完美的,但是为了理解我们的朋友 Ced 的问题:
Why do we need the default in the 2nd example ? In other words why can't we have export EmberReflux directly ?
当你这样写的时候:
export { EmberReflux };
写法是一样的:
export { EmberReflux: EmberReflux };
这就是为什么你需要运行EmberReflux.EmberReflux,解决方法很简单:
export default EmberReflux;
class EmberReflux {
//...
}
module.exports = EmberReflux