Javascript 相当于在ES6导入中需要子属性

Javascript 相当于在ES6导入中需要子属性,javascript,import,ecmascript-6,require,Javascript,Import,Ecmascript 6,Require,我有一个现有的要求: const {dialog} = require('electron').remote; 我开始在ES6中使用Babel,并希望将其导入。到目前为止,我已经: import electron from 'electron'; const {dialog} = electron.remote; 这太难看了,我忍不住觉得有更好的办法。我只需要这里的对话框。我如何在一行中找到它?没有什么“丑陋”,这是在ES6中应该如何写的东西 imports应在不进行脚本计算的情况下进行静态

我有一个现有的
要求

const {dialog} = require('electron').remote;
我开始在ES6中使用Babel,并希望将其导入。到目前为止,我已经:

import electron from 'electron';
const {dialog} = electron.remote;

这太难看了,我忍不住觉得有更好的办法。我只需要这里的对话框。我如何在一行中找到它?

没有什么“丑陋”,这是在ES6中应该如何写的东西

import
s应在不进行脚本计算的情况下进行静态分析,支持的语法有限。默认导入不能在
import
语句中进行解构,所有语法类型

它可以写成

import electron from 'electron';
const { remote: { dialog } } = electron;

ECMAScript模块语法不允许深度分解。事实上,它根本不会破坏结构。Import语句在模块之间创建活动绑定

这是本·纳德尔写的一篇很棒的博客文章。它应该可以为绑定提供一些帮助:

这样做

import electron from 'electron';
const {dialog} = electron.remote;

electron
就是这样的绑定。通过执行destructuring assignment
dialog
是正常常数,它不会“绑定”到电子模块(不会更新)。

不幸的是,我不认为有一种方法可以使用ES6导入也进行深层次的destructure,因此您现在所做的是目前所能做的。相关: