学习源码可以看我的个人前端学习笔记 (github.com):qdxzw/frontlearningNotes
觉得有帮助的同学,可以点心心支持一下哈(笔记是根据b站尚硅谷的前端讲师【张天禹老师】整理的,用于自己复盘,有需要学习的可以去b站学习原版视频)
1.模块化概述
1.1什么是模块化?
将程序文件依据一定规则拆分成多个文件,这种编码方式就是模块化的编码方式;拆分出来每个文件就是一个模块,模块中的数据都是私有的,模块之间互相隔离;同时也能通过一些手段,可以把模块内的指定数据“交出去”,供其他模块使用。
1.2为什么需要模块化?
随着应用的复杂度越来越高,其余代码量和文件数据都会急剧增加,会逐渐引发下列问题:
①全局污染问题
②依赖混乱问题
③数据安全问题
2.有哪些模块化规范
历史背景(了解即可):2009年,随着Node.js的出现,JavaScript在服务器端的应用逐渐增多,为了让Node.js的代码更好维护,就必须要制定一种Node.js环境下的模块化规范,来自Mozilla的工程师Kevin Dangoor提出了CommonJS规范(CommonJS初期的名字叫ServerJS),随后Node.js社区采纳了这一规范。
随着时间的推移,针对JavaScript的不同运行环境,相继出现了多种模块化规范,按时间排序,分别为:
①CommonJS——服务端应该广泛
②AMD
③CMD
④ES6模块化——浏览器端应用广泛
3.导入与导出的概念
模块化的核心思想就是:模块之间是隔离的,通过导入和导出进行数据和功能的共享
导出(暴露):模块公开其内部的一部分(如变量、函数等),使这些内容可以被其他模块使用
导入(引入):模块引入和使用其他模块导出的内容,以重用代码和功能
4.CommonJS规范(民间标准,被官方采纳)
4.1初步体验
index.js(入口文件):
const school = require('./school')
const student = requ