1、概念
模块通常是指编程语言所提供的代码组织机制,利用此机制可将程序拆解为独立且通用的代码单元,所谓模块化主要是解决代码分割、作用域隔离、模块之间的依赖管理以及发布到生产环境时的自动化打包与处理等多个方面
2、模块的优点
(1)可维护性。因为模块是独立的,一个设计良好的模块会让外面的代码对自己的依赖越少越好,这样自己就可以独立去更新和改进
(2)命名空间。在JavaScript里面,如果一个变量在最顶级的函数之外声明,它就直接变成全局可用。因此,常常不小心出现命名冲突的情况。使用模块化开发来封装变量,可以避免污染全局环境
(3)重用代码。我们有时候会喜欢从之前写过的项目中拷贝代码到新的项目中,这没有问题,但是更好的方法是通过模块引用的方式,来避免重复的代码库
3、ES6模块
概念:一个模块就是一个对其它模块暴露自己的属性或方法的文件
导出export:作为一个模块,它可以选择性的给其它模块暴露自己的属性和方法,供其它模块去使用
第一种:导出多个
var name = 'amy'l
var age = 18;
var hobby = '购物';
export {name, age, hobby};
对应导入import
import {name, age, hobby} from './components/testA'
第二种:导出别名
var name = 'amy'l
var age = 18;
var hobby = '购物';
export {name as v1, age as v2, hobby};
对应导入import
import {v1, v2, hobby} from './components/testA'
第三种:export default 默认导出的是一个对象
export default {name: 'abc', hobby: 'games'}
import obj from './components/testA'