首页 > 其他分享 >前端模块化规范

前端模块化规范

时间:2023-02-19 16:33:19浏览次数:36  
标签:浏览器 模块化 前端 CMD 规范 js babel

1. 有哪些规范

  ES6、

  服务器端模块化规范:CommonJS、

  浏览器端模块化规范:AMD、CMD

  在ES6提出之前,JS社区已经尝试并提出了AMD、CMD、CommonJS等模块化规范,这些社区提出的模块化标准,还是存在一定的差异性与局限性,并不是浏览器与服务器通用的模块化标准,例如:

  • AMD和CMD只适用于浏览器端的JavaScript模块化
  • CommonJS是在node中实现的,也就是node环境中可以支持require和exports,但是在浏览器环境中,是不支持的。只适用于服务器端的JavaScript模块化

2. 为什么会有模块化规范(背景是什么)

  随着ajax异步请求的出现,慢慢形成了前后端分离

    a. 客户端要完成的事情越来越多,代码量也与日俱增

    b. 为了应对代码量的剧增,通常会将代码组织在多个js文件中,进行维护

    c. 但这种维护方式,依然不能避免一些灾难性的问题,比如全局变量重名问

    这种代码的编写方式对js文件的依赖顺序几乎是强制性的。等等

  传统开发模式的主要问题:

  • 命名冲突
  • 文件依赖

3. 通过模块化,解决了什么问题

  模块化就是把单独的一个功能封装到一个模块(文件)中,模块之间相互隔离,但是可以通过特定的接口公开内部成员,也可以依赖别的模块

  模块化开发的好处:

    方便代码的复用,从而提高开发效率,方便后期维护

4. 各个模块的区别

  a. AMD规范是通过Require.js实现的,所以需要下载Require.js文件

  b. CMD是阿里开发的,使用起来的语法有点像CommonJS和AMD的结合版,SeaJS实现了CMD规范,所以需要下载这个seajs。

  c. CommonJS:node.js原生就支持commonJS的规范。语法就exports和require两个,exports可以一起导出,也可以分开导出,require直接导入

  d.ES6需要安装一些加载插件:babel-cli,babel-preset-es2015和browserify。

  babel-cli主要是实现命令行,执行babel指令可以运行;

  babel-preset-es2015: 把ES6转成ES5的工具,babel不仅可以完成es6转es5,还能转其他的,转啥就下载啥,所以这里就需要下载这个babel-preset-es2015。因为前面写的js文件,首先浏览器根本就不认识ES6的语法,因此需要babel来转成es5,另外,需要把它弄到浏览器环境中能执行,所以必须browserify

标签:浏览器,模块化,前端,CMD,规范,js,babel
From: https://www.cnblogs.com/felix-felix/p/17134979.html

相关文章