【问题标题】:ES6 - Convert from 'require' to 'import'ES6 - 从“需要”转换为“导入”
【发布时间】:2015-06-17 17:43:03
【问题描述】:

如果替代:

 var Foo = require('foo');

是:

 import Foo from 'foo';

有什么替代方法:

var Bar = require('foo').batz

可能是:

import {batz}  from 'foo' ?

【问题讨论】:

  • 你猜对了。
  • 另外,这与 ReactJS 无关。你能把你的标签从 reactjs 改成 ecmascript-6 吗?
  • 那么 require('foo'); 不将其存储在 var 中呢? import 似乎需要一个变量,我可以随意使用任何东西吗?
  • @Kokodoko 有点晚了,但import './file'; 是等价的!​​span>
  • 有人可以用所有文件名的排列来解释第一个版本发生了什么吗?我不认为它一般有效。 NAMES 肯定很重要吗?

标签: ecmascript-6


【解决方案1】:

几乎。但是,这取决于您如何导出它们。

  • 命名导出 (export var batz = …):

    import {batz as Bar} from 'foo';
    
  • 默认导出对象 (export default {batz: …};) - 不应使用:

    import Foo from 'foo';
    var Bar = Foo.batz;
    

【讨论】:

  • “不应使用默认导出的对象 [...]”——你能解释一下为什么不这样做吗?
  • @Pavlo:因为如您所见,导入语法很尴尬 :-) 至少在这种情况下,命名导出更合适(我不是一般建议不要默认导出)。
  • import { foo: { batz } } from 'foo'; console.log(batz);
  • @szines:不,你只能bind to BindingIdentifiers,你不能在这里使用解构。
  • @Bergi 啊,谢谢。但是在 Ember.js 中,你可以按照我写的那样做,可能它是特定于框架的东西。
猜你喜欢
  • 2020-01-11
  • 1970-01-01
  • 2017-07-13
  • 2016-06-07
  • 2015-04-15
  • 2017-01-06
  • 2015-11-05
  • 1970-01-01
相关资源
最近更新 更多