我正在尝试创建一个导出多个ES6类的模块。假设我有以下目录结构:
my/
└── module/
├── Foo.js
├── Bar.js
└── index.js
Foo。js
和栏。js
每个导出一个默认ES6类:
// Foo.js
export default class Foo {
// class definition
}
// Bar.js
export default class Bar {
// class definition
}
我目前有我的索引。js
设置如下:
import Foo from './Foo';
import Bar from './Bar';
export default {
Foo,
Bar,
}
但是,我无法导入。我希望能够这样做,但找不到类:
import {Foo, Bar} from 'my/module';
在ES6模块中导出多个类的正确方法是什么?
@webdeb的答案对我不起作用,我在使用Babel编译ES6时遇到了一个意外的令牌错误,执行命名的默认导出。
然而,这对我很有效:
// Foo.js
export default Foo
...
// bundle.js
export { default as Foo } from './Foo'
export { default as Bar } from './Bar'
...
// and import somewhere..
import { Foo, Bar } from './bundle'
希望这有助于:
// Export (file name: my-functions.js)
export const MyFunction1 = () => {}
export const MyFunction2 = () => {}
export const MyFunction3 = () => {}
// if using `eslint` (airbnb) then you will see warning, so do this:
const MyFunction1 = () => {}
const MyFunction2 = () => {}
const MyFunction3 = () => {}
export {MyFunction1, MyFunction2, MyFunction3};
// Import
import * as myFns from "./my-functions";
myFns.MyFunction1();
myFns.MyFunction2();
myFns.MyFunction3();
// OR Import it as Destructured
import { MyFunction1, MyFunction2, MyFunction3 } from "./my-functions";
// AND you can use it like below with brackets (Parentheses) if it's a function
// AND without brackets if it's not function (eg. variables, Objects or Arrays)
MyFunction1();
MyFunction2();
在代码中尝试以下操作:
import Foo from './Foo';
import Bar from './Bar';
// without default
export {
Foo,
Bar,
}
顺便说一句,你也可以这样做:
// bundle.js
export { default as Foo } from './Foo'
export { default as Bar } from './Bar'
export { default } from './Baz'
// and import somewhere..
import Baz, { Foo, Bar } from './bundle'
使用导出
export const MyFunction = () => {}
export const MyFunction2 = () => {}
const Var = 1;
const Var2 = 2;
export {
Var,
Var2,
}
// Then import it this way
import {
MyFunction,
MyFunction2,
Var,
Var2,
} from './foo-bar-baz';
与导出默认值
的区别在于,您可以导出某些内容,并在导入时应用名称:
// export default
export default class UserClass {
constructor() {}
};
// import it
import User from './user'
问题内容: react.js的新功能并尝试遵循本教程。不幸的是,页面中给出的代码无法正常工作。webpack抱怨 想知道如何解决它。谢谢。 === App.jsx ==== === main.js === 更新1 我注释掉了所有内容,并在末尾添加了以下内容 现在没有编译错误,但是网页为空白。我不确定这里出什么问题了。 问题答案: 您只能声明一个默认出口,例如: 要么 然后做 如果要导出更多内容,则
我看到ES6模块的公共导出是通过以下两种方式完成的: 这两个都有效吗? 如果是这样,为什么它们都存在? 使用ES6语法的模块导出还有其他有效的选项吗? 我很惊讶我还没能用我的谷歌找到答案。我只关心ES6模块,而不关心通用JS、要求JS、AMD、节点等。
我正在使用ECMAScript 6模块。从下面的选项中从模块导出/导入多个方法的正确方法是什么? 单一类别的静态方法: 多个导出方法: 1) 导出:一个仅仅是静态方法的类感觉有点像“代码味道”,但类似地,单独导出所有内容确实感觉有点冗长。这仅仅是开发人员的偏好,还是存在性能影响? 2) 导入:“*as”语法是我首选的方法,因为它允许您使用点表示法(同时引用模块和方法)帮助代码可读性。当我可能只使用
问题内容: 我正在使用ECMAScript6模块。通过以下选项从模块导出/导入多个方法的正确方法是什么? 单类静态方法: 多种导出方法: 1)导出:一类只是静态方法的感觉有点像“代码气味”,但是类似地,单独导出所有内容确实有点冗长。仅仅是开发人员的偏爱还是这里有性能影响? 2)导入:’* as’语法是我的首选方法,因为它允许您使用点表示法(同时引用模块和方法)来辅助代码的可读性。但是,当我可能只使
我试图上传一个图像到内存使用multer,然后处理它与夏普和保存到磁盘。当我尝试在我的中间件中做多个module.exports时。 错误是: TypeError FileUpload.Single不是函数 到目前为止的路线是: 当我刚刚有下面的路由之前,尝试添加图像处理,我没有得到一个错误;
我正在尝试使用模块。导出以创建“全局”函数,我可以在React项目中使用该函数使用Axios进行API调用。 我已经尝试了以下... 这将返回错误…'未定义fetchApi没有未定义 我知道,通常你可以使用导出默认导入和导出组件,但我认为这不是必需的,如果使用module.export. 另外,如果我尝试像这样导入。。。 我得到以下错误...尝试导入错误:'.../.../.../utils/ap