在 ES6 中导出多个变量?
Export more than one variable in ES6?
我试图在 ES6 中导出多个变量:
exports.js
var TestObject = Parse.Object.extend('TestObject')
var Post = Parse.Object.extend('Post')
export default TestObject
export Post
main.js:
import TestObject from '../store'
import Post from '../store'
var testObject = new TestObject() // use Post in the same way
testObject.save(json).then(object => {
console.log('yay! it worked', object)
})
我知道只有一个默认值,所以我只在第一项中使用了 default
。
但是,我收到此错误消息:
Module build failed: SyntaxError: /home/alex/node/my-project/src/store/index.js: Unexpected token (9:7)
7 |
8 | export default TestObject
> 9 | export Post
也许我做错了?
你可以在 ES6 中像这样导出多个对象
var TestObject = Parse.Object.extend('TestObject')
var Post = Parse.Object.extend('Post')
export {
TestObject,
Post
}
然后,在导入时,您可以这样做:
import { TestObject, Post } from './your-file';
这不是有效的语法。你可以做到
export { Post }
甚至只是
export var Post = Parse.Object.extend('Post')
或将整个文件缩短为
export default Parse.Object.extend('TestObject')
export var Post = Parse.Object.extend('Post')
你的导入也不正确,你会想要做的
import TestObject, { Post } from '../store'
这是在您确实需要一个默认导出和一个单独的命名导出时使用。如果你愿意,你也可以只做两个命名导出并且没有默认值,例如
export var TestObject = Parse.Object.extend('TestObject');
export var Post = Parse.Object.extend('Post');
或
var TestObject = Parse.Object.extend('TestObject');
var Post = Parse.Object.extend('Post');
export { TestObject, Post };
并使用
导入
import { TestObject, Post } from '../store'
如果适合您的用例,您可以将非默认导出作为默认导出的 属性。我发现它使代码更清晰。
const TestObject = Parse.Object.extend('TestObject');
TestObject.Post = Parse.Object.extend('Post');
export default TestObject;
那么导入的时候只需要导入默认的:
import TestObject from './your-file.js';
然后,你可以这样使用它:
TestObject.Post({some, args});
导出默认值
导出 {}
导出时使用的名称必须与导入时相同。
您也可以在导入时使用 *。
为了导出多个变量,我们必须像这样从 { } 内的文件中取出我们想要导出的所有内容 -
export { <var 1>, <var 2> , <var 3>, ... , <var n>};
对于默认导出我们可以单独写这个-
export default <var name>; // there can be only one deafault export;
在您的代码中,您可以进行以下更改 -
exports.js
export { Post };
main.js
import { Post } from '<exports file>';
example
我试图在 ES6 中导出多个变量:
exports.js
var TestObject = Parse.Object.extend('TestObject')
var Post = Parse.Object.extend('Post')
export default TestObject
export Post
main.js:
import TestObject from '../store'
import Post from '../store'
var testObject = new TestObject() // use Post in the same way
testObject.save(json).then(object => {
console.log('yay! it worked', object)
})
我知道只有一个默认值,所以我只在第一项中使用了 default
。
但是,我收到此错误消息:
Module build failed: SyntaxError: /home/alex/node/my-project/src/store/index.js: Unexpected token (9:7)
7 |
8 | export default TestObject
> 9 | export Post
也许我做错了?
你可以在 ES6 中像这样导出多个对象
var TestObject = Parse.Object.extend('TestObject')
var Post = Parse.Object.extend('Post')
export {
TestObject,
Post
}
然后,在导入时,您可以这样做:
import { TestObject, Post } from './your-file';
这不是有效的语法。你可以做到
export { Post }
甚至只是
export var Post = Parse.Object.extend('Post')
或将整个文件缩短为
export default Parse.Object.extend('TestObject')
export var Post = Parse.Object.extend('Post')
你的导入也不正确,你会想要做的
import TestObject, { Post } from '../store'
这是在您确实需要一个默认导出和一个单独的命名导出时使用。如果你愿意,你也可以只做两个命名导出并且没有默认值,例如
export var TestObject = Parse.Object.extend('TestObject');
export var Post = Parse.Object.extend('Post');
或
var TestObject = Parse.Object.extend('TestObject');
var Post = Parse.Object.extend('Post');
export { TestObject, Post };
并使用
导入import { TestObject, Post } from '../store'
如果适合您的用例,您可以将非默认导出作为默认导出的 属性。我发现它使代码更清晰。
const TestObject = Parse.Object.extend('TestObject');
TestObject.Post = Parse.Object.extend('Post');
export default TestObject;
那么导入的时候只需要导入默认的:
import TestObject from './your-file.js';
然后,你可以这样使用它:
TestObject.Post({some, args});
导出默认值 导出 {}
导出时使用的名称必须与导入时相同。
您也可以在导入时使用 *。
为了导出多个变量,我们必须像这样从 { } 内的文件中取出我们想要导出的所有内容 -
export { <var 1>, <var 2> , <var 3>, ... , <var n>};
对于默认导出我们可以单独写这个-
export default <var name>; // there can be only one deafault export;
在您的代码中,您可以进行以下更改 -
exports.js
export { Post };
main.js
import { Post } from '<exports file>';
example