ES Module的基本用法

import 导入

import...from... 必须在文件的最顶层,最外层的作用域,

// 路径可以是相对路径【或根目录下的绝对路径,或应完整的url(说明可以引用cdn上的一些文件)】,但不能以字母开头【js会以为是加载第三方插件】
import {name} from './module.js'
import {name} from '/2-2/export/module.js'
import {name} from 'http://localhost:3000/2-2/export/module.js'

执行某个模块,不提取,多用于加载其他项目中的子模块

import {} from './module.js'
import './module.js' // 简写

动态导入(可以放在任意文件中的任意位置)

import('./module.js').then(function(module){
console.log(module)
})

导入默认参数 (as后面是别名)

import { name, age, default as title} from './module.js'
import title, { name, age } from './module.js' // 简写

导入,提取所有成员

import * as mod from './module.js'
console.log(mod)

导入单个默认参数

import default as title from './module.js'

export 导出

导出形式 1,分条导出

export var name = 'foo module'

导出形式 2,集中导出

export { name, hello, Person}

导出形式 3,导出重命名,到引入页面,

import 也需要用已经重命名的参数名,import {fooName} from './module.js'
export {
// name as default, // 作为默认项导出,导入页面需要重命名,import {default as fooName} from './module.js'
hello as fooHello,
Person as FooPerson
}

注意

import 命令会提升到整个模块的头部,首先执行。
import 导入的成员是一个只读对象,不可在导入文件中修改。
import只读属性:不允许在加载模块的脚本里面,改写接口的引用指向,即可以改写 import 变量类型为对象的属性值,不能改写 import 变量类型为基本类型的值。静态执行特性:import 是静态执行,所以不能使用表达式和变量。
在一个文件或模块中,export、import可以有多个,export default仅有一个
export 命令可以出现在模块的任何位置,但必需处于模块顶层。
通过 export 方式导出,在导入时要加{ },export default 则不需要。
export default 向外暴露的成员,可以使用任意变量来接收。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容