ES6 模块加载

ES6 模块加载

export,import的语法


    let module1 = 'GongGe4',
        module2 = 'VFrank',
        module3 = 'No Bugs';


    //  原名输出
    export {
        module1,
        module2,
        module3
    };

    // 改名输出
    export {
        v1 as module1,
        v2 as module2,
        v3 as module3
    };

    // 对应的引入方式
    import { module1, module2, module3} from './vfrank.js';

    // 改名引入方式
    import { module1 as vfrank } from './vfrank.js';

    // 直接全部引入
    import * as vfrank from './vfrank.js';

需要特别注意的是,export命令规定的是对外的接口,必须与模块内部的变量建立一一对应关系。(其他脚本可以通过这个接口,取到值1。它们的实质是,在接口名与模块内部变量之间,建立了一一对应的关系。)


    // 两种报错,因为没有提供对外的接口,直接输出。
    export 2018;

    let MX = 'Can not forget';
    export MX;


    // 三种正确写法
    export let  MX = 2018;

    let  MX = 2018;
    export {MX };

    let MX = 1;
    export { name as MX };

export default 、import的语法


    export default function() {
        console.log('Whatever you like');
    }

    // 可以随意取名引入
    import gongge from './vfrank.js';
    import vfrank from './vfrank.js';

跨模块变量使用

  • 使用模块引入的方式,可以很好地实现深层组件传值,类似于观察者设计模式

    let commonData = {};

    function setJsonValue(jaon = {}) {
        commonData = json;
    }

    function getJsonValue() {
        return commonData;
    }

    export default {
        setJsonValue,
        getJsonValue
    }   
    // 不同模块之间引用这个模块文件的时候,能够共享得到这个commonData,一个模块修改之后,另外一个模块同时也能够拿到这个修改值

经典案例,全局生成唯一id


    let baseID = 0;

    export default function(prefix){
        return (prefix ? prefix : 'vfrank-') + baseID++
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值