使用ES6/2015导出对象文字的最佳方法是什么?

Svi*_*ana 24 javascript ecmascript-6

看似非常简单的任务......

export default function() {
    return {
        googleClientID:'xxxx'
    }
}
Run Code Online (Sandbox Code Playgroud)

这是使用应用程序设置导出对象文字的最佳方法吗?

mad*_*ox2 54

您可以导出对象本身:

export default {
    googleClientID:'xxxx'
};
Run Code Online (Sandbox Code Playgroud)

不同的是,在您的情况下,每次调用导出函数时都会得到全新的对象.在这种情况下,您每次都会获得相同的对象.取决于你需要什么.

  • @ aashah7我正在使用默认导出,因此您需要默认导入它:`从'file'`导入googleClientID.您是按名称导入它,因此您需要使用命名导出:`export const googleClientID ='xxx'`.请注意,解构不适用于导入. (4认同)
  • 导入时,为什么无法从“文件”中导入{{googleClientID}? (2认同)

voi*_*oid 8

您只需导出一个对象即可

export default { googleClientID:'xxxx' };
Run Code Online (Sandbox Code Playgroud)

甚至

export default foo = { googleClientID:'xxxx' };
Run Code Online (Sandbox Code Playgroud)

一个默认的出口可以是函数,类,对象或其他任何东西.此值将被视为"主要"导出值,因为它将是最简单的导入值.

  • @void你的第二个例子不对,不允许分配. (10认同)
  • 第二个例子应该是`export var foo = ...`。 (2认同)
  • 我以为您想创建一个命名的导出,但是也许您不想要?如果您之前没有在任何地方声明过foo,那么export default foo = ...会抛出错误,如果您只想导出变量,我看不到将值赋给变量的意义。需要明确的是:`export default foo = 42;`基本上与在CommonJS中执行`module.exports =(foo = 42);`相同(我相信这不是很常见)。 (2认同)