让前端飞

Module ES6

2017-09-15  本文已影响0人  jingqian_xi

介绍

在ES6之前社区定制了一些模块加载方案,主要有CommonJS和AMD两个,CommonJS用于服务器,而AMD用于浏览器,ES6的出现可以成为通用方案。ES6的模块设计思想是尽量静态化,在编译时就可以确定模块的依赖关系以及输入和输出的变量。模块功能主要由export和import两个命令构成

相关名词解释

let {a, b, c} = require('common')

解析:上面的代码运行是整体加载common模块,然后使用a,b,c三个方法,这样的加载方式叫做运行时加载

import {a, b, c} from 'common'

解析:从common模块加载a,b,c三个模块,其他不加载,这种方式叫做编译时加载

export和import

ES6模块加载的实质

ES6模块输出的是值的引用(根据简单数据类型和引用类型的特点来理解这个问题比较容易),当他遇到import时不是去执行模块而是生成一个引用,等到执行到这里再到模块中去拿。

🌰说明

// lib.js
export let num = 0
export function sum () {
  num++
}
// main.js
import {num, sum} from './lib.js'
console.log(num) // 0
sum()
console.log(num) // 1
上一篇下一篇

猜你喜欢

热点阅读