ES6中模块化详解
前言
因为ES6中的模块化是将来,所以就必须有必要好好的了解一下,学习一下,这篇文章就简单总结一下ES6中模块的概念,语法和用法。纯属个人总结,不喜勿喷。
下面我将通过a.js、b.js和c.js三个文件把ES6的知识点穿起来。
默认导出
导出语法:
export default 默认导出的成员
样例代码a.js:
// 默认暴露
export default {
name: '果冻想',
getInfo: function(){
return "欢迎关注微信公众号:果冻想";
}
}
注意事项:
- export default 向外暴露的成员,可以使用任意的变量来接收;
- 在每个模块中,只允许使用唯一一次export defalut,否则会报错;
- 如果一个模块未export导出,但在另外一个模块中引入了,会返回一个空对象,不会报错。
统一导出
导出语法:
export {a, b, c};
样例代码b.js:
// 统一暴露
let name = '果冻想';
function getInfo(){
return "欢迎关注微信公众号:果冻想";
}
export {name, getInfo};
分别导出
导出语法:
export a
export b
样例代码c.js:
// 分别暴露
export let name = '果冻想';
export function getInfo(){
return "欢迎关注微信公众号:果冻想";
}
导入方式汇总
直接上代码:
<script type="module">
// 1. 通用的导入方式
// 引入 a.js 模块内容
import * as m1 from "./a.js";
console.log(m1.default.name);
console.log(m1.default.getInfo());
// 引入 b.js 模块内容
import * as m2 from "./b.js";
console.log(m2.name);
console.log(m2.getInfo());
// 引入 c.js
import * as m3 from "./c.js";
console.log(m3.name);
console.log(m3.getInfo());
//2. 解构赋值形式
import {name, getInfo} from "./b.js";
console.log(name);
console.log(getInfo());
//3. 简便形式 针对默认暴露
import a from "./a.js";
console.log(a.name);
console.log(a.getInfo());
</script>
在浏览器中如果无法直接运行,安装一个live server插件就OK了。
总结
一天一个小知识点,学到了~