ES6 -模块化

1.定义模块: export

export const a=12

export {a,b,c}

别名 export {a as aaa,b as bbb,c as ccc} ->使用 import {aaa,bbb,ccc} from './modules/1.js'

2.使用模块: import   <script type="module"> <\/script>

import {a,b,c} from './modules/1.js'

别名 import {a as aaa,b as bbb,c as ccc} from './modules/1.js' ->使用 console.log(aaa);

import * as test from './modules/1.js' ->使用 console.log(test.a);

3.import特点:

a) import可以是相对路径,也可以是绝对路径

b) import模块只会导入一次,无论你引入多少次

c) import './modules/1.js';如果这么用,相当于引入文件

d)有提升效果,import会自动提升到顶部,首先执行

e) 导出去模块内容,如果里面有定时器更改,外面也会改动

4.export default ,import 引用时没有{}

// export default ,引用时没有{}
export default 12;
import a from './modules/1.js' 

5.import() 可以动态引用,返回值是个promise对象

优点:1.按需加载 2.可以写到if中 3.路径可以动态

import('./modules/1.js').then(res=>{
    console.log(res.a);
})

// Promise.all()
Promise.all([
    './modules/1.js',
    './modules/2.js'
]).then((mod1,mod2)=>{
    console.log(mod1,mod2);
})

// async await

async function test(){
   const [mod1,mod2]=await Promise.all([
        import('./modules/1.js'),
        import('./modules/2.js')
    ]);
    console.log(mod1,mod2);
}

 

posted @ 2018-08-27 10:25  yuesu  阅读(179)  评论(0编辑  收藏  举报