美文网首页
ES6-export import基础结尾

ES6-export import基础结尾

作者: 吴高亮 | 来源:发表于2019-01-22 21:40 被阅读0次

如果在一个模块中,先输入和后输出同一个模块,import语句可以与export语句写在一起;

export {foo,bar} from  'my_module';
//可以简单理解为
import {foo,bar} from 'my_module';
export {foo,bar};

上面的代码仅仅做了中转;当前模块是使用不了的;
模块的接口改名和整体输出;也可以柴永这种写法;

export {foo as myFoo} from 'my_module';
//整体输出;
export * from 'my_module';

默认接口的写法如下;

import();

简介:
前面介绍过;import命令会被javascript引擎静态分析;先与模块内的其他语句执行(import命令叫做‘连接’ binding其实更合适)。所以,下面的代码会报错;

if(x===2){
import MyMoudle from './myModule';
};

上面代码中,引擎处理import语句是在编译时,这时不会去分析或执行if语句,所以import语句放在if代码块之中毫无意义,因此会报句法错误,而不是执行时错误。也就是说,import和export命令只能在模块的顶层,不能在代码块之中(比如,在if代码块之中,或在函数之中)。
这样的写法固然提高编译的效率;当时无法在运行时进行逻辑判断;而且在语法上条件加载无法实现;如果import命令要取代 Node 的require方法,这就形成了一个障碍。因为require是运行时加载模块,import命令无法取代require的动态加载功能。

const path = './' + fileName;
const myModual = require(path);

上面的语句就是动态加载,require到底加载哪一个模块,只有运行时才知道。import命令做不到这一点。

相关文章

网友评论

      本文标题:ES6-export import基础结尾

      本文链接:https://www.haomeiwen.com/subject/cxpljqtx.html