Js前端模块化规范及其产品

规范一 commonJs:用于服务器端(产品有NodeJs、browserify等)。

javascript 复制代码
	// 导入
	var bjs = require("b.js")
	// 导出
	module.exports = function() {}

规范二 AMD:用于浏览器端,是异步的(产品有requireJs、jQuery、AngularJS、Dojo)。

  • AMD和RequireJS:RequireJS 是一个前端的模块化管理的工具库,遵循AMD规范。
  • AMD规范定义了一个自由变量或者说是全局变量 define 的函数。
AMD规范
javascript 复制代码
    define( id?, dependencies?, factory );    
    第一个参数 id 为字符串类型,表示了模块标识,为可选参数。若不存在则模块标识应该默认定义为在加载器中被请求脚本的标识。如果存在,那么模块标识必须为顶层的或者一个绝对的标识。
    第二个参数,dependencies ,是一个当前模块依赖的,已被模块定义的模块标识的数组字面量。
    第三个参数,factory,是一个需要进行实例化的函数或者一个对象。

规范三 CMD:用于浏览器端,是异步的(产品有Sea.js、Vue) 。

CMD规范
  1. 对于依赖的模块,AMD 是提前执行,CMD 是延迟执行。不过 RequireJS 从 2.0 开始,也改成可以延迟执行(根据写法不同,处理方式不同)。CMD 推崇 as lazy as possible.
  2. CMD 推崇依赖就近,AMD 推崇依赖前置。

四 UMD:通用模块

  • 用于在实际运行时探测用户实际使用的是 AMD 规范模块还是 CommonJS 规范模块。

五 ES6 Modules(Es6模块化语法,现在是大趋势):

javascript 复制代码
	// 导入
	import { time } from "./counter.mjs"
	// 导出
	export var time = 0
相关推荐
ShawnLiaoking3 小时前
ADS305 Big Data Lecuture4 Web Scraping
大数据·前端
liangshanbo12153 小时前
React面试题:Hooks 为什么不能在分支和循环里面写?
前端·javascript·react.js
开开心心就好3 小时前
视频压缩工具推荐,绿色版免安装双击即用
java·前端·人工智能·spring·智能手机·intellij-idea·excel
西红柿炖牛腩3544 小时前
GLB 转 OBJ/PLY 后体积没变?3D 模型不减面变小靠什么
前端·javascript·3d
谢亮_vipxieliang4 小时前
Go基础数据类型全解
开发语言·后端·golang
泡海椒4 小时前
JQuick-Excel 导入反向映射实战:让中文表头稳定落到业务字段
开发语言·python·excel
欣欣之王来了4 小时前
前端开发学习路线图:2026年Vue方向最新版
前端·学习·架构·项目·vue3教程
空堂与归4 小时前
AI 与 SI(超级智能):先分清窄智能与超级智能的边界
开发语言·人工智能·gpt
熊猫钓鱼>_>4 小时前
Kotlin Multiplatform for OpenHarmony 实战:为 kotlin-inject 实现依赖注入适配
开发语言·华为·kotlin·ai编程·inject·鸿蒙·openharmony
夏幻灵4 小时前
前端八股:Vue2 与 Vue3 的核心区别:响应式、Composition API 与性能优化
前端