es6中的模块化 import 和import{} import()的区别和使用

注意,需要放在服务器环境
在ES6之前,社区制定一套模块规则

Commonjs     主要服务端  nodeJs   require(‘http’)
   AMD              require,curlJs
   CMD              seaJs

ES出来,统一服务端和客户端模块规范
定义模块export,引入模块import

a).如何定义模块?
          export 东西
          export const a = 12;
          export{
                   a as aaa,     //别名
                   b as banana
                  }    //以上三个对相应import需要{}
           export default 12;   //对应的是import 不需要花括号
  b).如何使用?
              import
              import './modules/1.js';
              import {a,b ,c} from './modules/2.js'
              import * as modTwo from './modules/2.js'    //as 别名
              import a from './modules/2.js'  //只有default出来的不用花阔号

import{} 是默认的引入export模块的
import 不带花括号 是引入 export default 模块的

import:
a).import可以是相对路径,也可以是绝对路径
import “https://code.jquery.com/jquery-3.3.1.js”
b).import模块指挥引入一次,无论你导入多少次
c)import ‘./modules/1.js’;如果这么用,相等于引入文件
d)import 又提升的效果,import会自动提升到顶部,首先执行。(就是先使用了 a 和b 但是a 和b 在下面引入,前面的a和b照样可以使用)
e).到出去模块内容,如果里面有定时器更改,外面也会改动,不像Comon规范缓存。

import() 类似node里面require,可以动态引入的,,而且他是有返回值的,是个promise对象,而默认import语法不能写到if之类里面
import(’./modules/1.js’).then(res=>{
console.log(res.a + res.b);
});
优点:
1.按需加载
2.可以写到if中
3.路径也是可以动态的
可以结合 Promise.all来用
es6中的模块化 import 和import{} import()的区别和使用_第1张图片

你可能感兴趣的:(笔记,es6)