zoukankan      html  css  js  c++  java
  • ES6语法--导入、导出

    一、export 导出
    export default 是默认导出
    export const 是命名导出

    module.exports与exports,export与export default之间的关系和区别
    Node应用由模块组成,采用CommonJS模块规范。
    根据这个规范,每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见。
    CommonJS规范规定,每个模块内部,module变量代表当前模块。这个变量是一个对象,它的exports属性(即module.exports)是对外的接口。加载某个模块,其实是加载该模块的module.exports属性。

    var x = 5;
    var addX = function (value) {
    return value + x;
    };
    module.exports.x = x;
    module.exports.addX = addX;
    require方法用于加载模块。

    var example = require('./example.js');
    console.log(example.x); // 5
    console.log(example.addX(1)); // 6
    exports 与 module.exports
    为了方便,Node为每个模块提供一个exports变量,指向module.exports。这等同在每个模块头部,有一行这样的命令。

    var exports = module.exports;
    ES6模块规范
    不同于CommonJS,ES6使用 export 和 import 来导出、导入模块。

    // profile.js
    var firstName = 'Michael';
    var lastName = 'Jackson';
    var year = 1958;

    export {firstName, lastName, year};


    二、import ... form...替代 require()
    基本导入导出
    // 不接收对象
    require:require('s.css'); //(es5)
    improt 's.css' //(es6)

    // 接收对象
    var o = require('s.js'); //es(5)
    import o form s.js //(es6)
    对象的写法:
    // 导出一个模块对象(es5):
    module.exports={
    add:add,
    sub:sub
    }
    // 导出一个模块对象(es6):
    module.exports={
    add,
    sub
    }
    // 注意:上es6这种写法属性名和属性值变量是同一个,否则要分开写
    module.exprots={
    addFn:add,
    sub
    }

    一个对象中方法的写法:
    // es5
    module.exports={
    addFun:function(x,y){
    return x+y;
    }
    }
    // es6
    module.exports={
    addFun(x,y){
    return x+y;
    }
    }
    导出对象
    calc.js中有两个函数:
    function add(){}
    function sub(){}

    //写法一

    es5写法:
    module.exports.add = add;
    module.exports.sub = sub;

    es6写法:
    exprot function add(){}
    exprot function sub(){}

    使用:
    var calc = require('./calc.js');

    //写法二
    es5:
    module.exports = {add:add,sub:sub};
    es6:
    exprot default{
    add,sub
    }
    //表示取得calc.js中所有暴露出来的对象(es6)
    import calc from './calc.js'
    //只获取到calc.js中的add方法(按需获取)
    import {add} from './calc.js'

    用export 和import 的写法注意点
    1、如果模块中使用 export default {}
    只能通过 import 对象名称 from '模块路径'
    不能通过 import {对象名称} from '模块路径'
    2、如果使用 import {对象名称} from '模块路径' 导出具体某个对象或者方法名称

    需要单独导出对象或者方法:
    export function add(){}
    export function sub(){}

    使用:
    import {add, sub} from '模块路径'
    直接使用 add,sub方法

    注意:不能直接使用 import 对象名称 from '模块路径'


    export default 和 export 区别

    1、export与export default均可用于导出常量、函数、文件、模块等
    2、你可以在其它文件或模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用
    3、在一个文件或模块中,export、import可以有多个,export default仅有一个
    4、通过export方式导出,在导入时要加{ },export default则不需要

  • 相关阅读:
    args 、kwargs不定参数通过列表、元组、字典传递
    内置函数_eval
    python模块之beautifulSoup
    修改jupyter notebook的默认浏览器
    jupyter notebook自动补全功能实现
    在资源管理器中添加一个共享的网络位置
    在word2010中添加带滚动条的文本框
    Outlook 2010中263邮箱客户端设置
    跳跃游戏
    螺旋矩阵
  • 原文地址:https://www.cnblogs.com/ranyonsue/p/13100183.html
Copyright © 2011-2022 走看看