客户端

ReactJS,CommonJS,Browserify,ES6

所在版块: 前端技术 2017-12-22 09:29 [复制链接] 查看: 2760|回复: 0
一、缘起:JavaScript的模块化
        JavaScript最初只是用来执行网页中的一些脚本。互联网发展之初,网页大多是静态的,大量的逻辑在web服务器端完成,所以在浏览器端执行的脚本相对简单。但是随着技术的发展,尤其是Ajax异步加载技术的大量应用,浏览器端的JS代码变得越来越复杂,以前相对简单的静态页面也进化成功能复杂的WebApp。导致模块化开发和管理JS代码的需求越来越强烈。
        但是,JavaScript并不像其他高级语言那样有原生的模块化支持(比如C语言中的include,Java中的import)。于是一些第三方库就来JS解决模块化问题。这些模块化的解决方案主要分为:AMD和CMD两种模块化规范。
        AMD是“Asynchronous Module Definition”的简称,它是RequireJS在推广过程中提出的概念,主要是解决浏览器端的异步模块定义和加载。
        CMD是“Common Module Definition”的简称,它是Sea.js在推广过程中提出的概念,主要专注于服务器端(node.js)模块定义。

二、CommonJS和Browserify
        了解了JavaScprit的AMD和CMD模块化机制后,再来理解CommonJS就很容易了。没错,它是遵循CMD规范的模块化库。面向Server端开发。

三、Browserify
        CommonJS既然是面向Server端的,基于CommonJS开发的JS代码是无法直接在浏览器端执行的。而Browserify就是一个可以将CommonJS代码转成浏览器端可执行的代码。这个转换过程有时也被称作编译。

四、ES6
          随着JavaScript模块化应用的变得越来越广泛,JavaScript语言标准规范也开始在语言层面上对模块化的支持,即下一代“JavaScript”。这里顺便介绍一下语言标准组织ECMA。ECMAScript是对所有浏览器端的脚本语言定义的语言标准。JavaScript只是这一语言标准的一种实现而已。新一代的ECMAScript语言标准,其版本号从6.0开始,即新一代语言标准全称是:ESMAScript6.0,简称ES6。ES6的第一版是2015年6月发布的(ES2015),此后2016年,2017年也都有发布(做了些小修改)。所以ES6是真正代表下一代的JavaScript。
     虽然ES6引入了新的语言特性,但是现有的浏览器都还不支持,所以需要把ES6代码转成ES5版本的JavaScript代码才行。当前有多个转码器可以实现ES6到ES5的转码。典型代表有:Babel,Traceur。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码关注微信公众号

QQ|Archiver|手机版|小黑屋|mwt-design ( 沪ICP备12041170号-1

GMT+8, 2024-11-25 14:20 , Processed in 0.066312 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回列表