当前位置:  开发笔记 > 编程语言 > 正文

在ES6中导出多个变量?

如何解决《在ES6中导出多个变量?》经验,为你挑选了2个好方法。

我试图在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

也许我做错了吗?



1> loganfsmyth..:

这不是有效的语法.你可以做

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'),
    Post = Parse.Object.extend('Post')

import {TestObject, Post} from '../store'


默认导出是从'./ module'`导入foo时得到的导出,如果你使用`export var SomeThing`你需要按名称导入它,例如`'import {SomeThing}来自'./module'; `
@alexchenco Yup,主要的区别是`foo`可以命名为任何东西并且总是得到默认值,但是`TestObject`需要匹配导出的名称.如果你想在导入它的模块中给它一个不同的名字,你必须从`导入{TestObject as SomeOtherName}.`import foo from`是`import {默认为foo}来自`的缩写

2> Mario Tacke..:

您可以在ES6中导出这样的多个对象

var TestObject = Parse.Object.extend('TestObject')
var Post = Parse.Object.extend('Post')

export {
    TestObject,
    Post
}

然后,在导入时你这样做:

import { TestObject, Post } from './your-file';

您可以在此处阅读有关导入和导出的所有信息

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有