美文网首页
ES6 新特性之——import

ES6 新特性之——import

作者: 请叫我missp | 来源:发表于2019-07-29 17:39 被阅读0次
    简单介绍不同规范
    • CommonJS规范和AMD规范
      运行时加载
    // CommonJS模块
    let { stat, exists, readFile } = require('fs');
    
    // 等同于
    let _fs = require('fs');
    let stat = _fs.stat;
    let exists = _fs.exists;
    let readfile = _fs.readfile;
    

    上述代码:
    ① 整体加载fs模块,生成一个fs对象
    ② 然后在这个对象上读取方法
    这种加载,称之为 运行时加载

    • ES6 模块:es6模块不是对象,而是通过export显示输出的代码片段,在通过import方式输入
      编译时加载
    // ES6模块
    import { stat, exists, readFile } from 'fs';
    

    上述代码:
    ① 从fs模块加载三个方法,其他方法不加载(按需加载
    这种加载,称为编译时加载或者静态加载

    言归正传——ES6模块
    • 语法

    export 用于规定模块对外的接口

    • export 变量名|函数|类(class)| export { 变量1,变量2,变量3...}
      ①输出变量
    // profile.js
    export var firstName = 'Michael';
    export var lastName = 'Jackson';
    export var year = 1958;
    

    或者

    // profile.js
    var firstName = 'Michael';
    var lastName = 'Jackson';
    var year = 1958;
    export { firstName, lastName, year };
    

    ②输出函数

    export function multiply(x, y) {
      return x * y;
    };
    

    或者

     function multiply(x, y) {
      return x * y;
    };
    export {multiply}
    

    ③输出对象

    export class A{
    }
    
    • as 对输出的变量重命名
    // profile.js
    var firstName = 'Michael';
    var lastName = 'Jackson';
    var year = 1958;
    //用as重命名firstname
    export { firstName as ftname, lastName, year };
    
    • 整体加载模块
      export * as 变量名 from ‘模块‘;
    • export default
    // modules.js
    function add(x, y) {
      return x * y;
    }
    //具名接口改为默认接口
    export {add as default};
    // 等同于
    // export default add;
    
    // app.js
    //输入模块的默认接口并且重命名为foo
    import { default as foo } from 'modules';
    // 等同于
    // import foo from 'modules';
    

    import 用于输入其他模块提供的功能

    • 语法

    import { 变量名1,变量名2,变量名3...} from '模块'
    变量名必须和模块提供的对外接口名一致

    相关文章

      网友评论

          本文标题:ES6 新特性之——import

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