我有现成的require
:等效需要在ES6一个子属性导入
const {dialog} = require('electron').remote;
我开始使用巴贝尔的ES6,并想代替import
这一点。到目前为止,我有:
import electron from 'electron';
const {dialog} = electron.remote;
这是丑陋的,我不禁觉得有一个更好的方法来做到这一点。我只需要这里需要对话框。我如何在一行中得到它?
我有现成的require
:等效需要在ES6一个子属性导入
const {dialog} = require('electron').remote;
我开始使用巴贝尔的ES6,并想代替import
这一点。到目前为止,我有:
import electron from 'electron';
const {dialog} = electron.remote;
这是丑陋的,我不禁觉得有一个更好的方法来做到这一点。我只需要这里需要对话框。我如何在一行中得到它?
没有什么'丑陋的',这是怎么东西应该写在ES6。
import
s应该是静态分析没有脚本评估,支持的语法是有限的。默认导入不能在import
语句中解构,语法的所有变种are listed in the reference。
可以写成
import electron from 'electron';
const { remote: { dialog } } = electron;
ECMAScript的模块语法不允许深解构。事实上,它根本不会解体。导入语句在模块之间创建活动绑定。
这是Ben Nadel写的很棒的博客文章。通过做
import electron from 'electron';
const {dialog} = electron.remote;
electron
是这样的结合http://www.bennadel.com/blog/3131-the-import-statement-creates-a-live-view-of-modules-in-es6-and-typescript-in-angular-2.htm
因此:应该阐明绑定一些轻。通过做解构赋值dialog
是正常常数,它不会被“绑定”到电子模块(它不会更新)。
不幸的是,我不认为有一种使用ES6导入的方法也可以进行深度解构,所以你现在所做的与现在可以做的一样好。 –
相关:[ES6 - 从'require'转换为'import'](http://stackoverflow.com/q/30898686/218196) –