大前端三剑客:Vue+React+Flutter
上QQ阅读APP看书,第一时间看更新

1.1 大前端的发展过程

传统意义上的前端,主要是指基于浏览器的网页开发,但是随着移动互联的高速发展,前端开发的范畴又延伸到移动端设备,最初只是为了解决移动设备上网页的开发,但是随着HTML5技术的迅猛发展,随即出现了基于JavaScript与Android和iOS的混合开发框架,使传统意义上的前端和移动端出现融合,之前移动端开发主要以原生平台开发语言为主,如Android使用Java和iOS使用Objective C,现在在很多移动端场景中,开发者更加趋向于选择JavaScript作为首选开发语言。

2009年,Node.js风靡全球,作为前端开发者标配的开发语言JavaScript,被引入传统的后端领域,也就是服务器端。于是一大批基于Node.js平台的框架随即出现,比较典型的就是MEAN(MongoDB+Express+AngularJS+Node.js)模式,基本成为企业信息化产品的基础架构模式。随后又出现了很多基于Node.js平台的微服务框架和区块链框架。JavaScript语言成为首个可以同时解决前端和后端应用开发的开发语言,由于开源NoSQL数据库(MongoDB)也采用JavaScript语言作为数据库查询操作语言,JavaScript甚至进入了数据库查询语言中。

在传统的桌面端应用开发中,普遍基于C++或C#等开发语言进行开发,但是基于JavaScript语言的NW.js和Electron技术迅速应用于桌面应用开发场景中,成为程序员首选技术。Electron桌面开发框架,让开发者用最轻的技术栈完成较为复杂的桌面端开发,JavaScript这个传统意义上的前端开发语言由此进入了桌面端开发。

随着Web Assembly技术及WebGL技术的快速发展,JavaScript语言也在逐步进入VR、AR、3D游戏等领域。

在物联网(Internet of Things,IoT)领域,也逐步引入了JavaScript语言作为首选的开发语言,如华为最新研发的ArkUI就是一款使用JavaScript语言来开发物联网应用程序的跨端开发框架。

由此可见,前端的概念已经从传统的网页开发发展到了所有能够使用JavaScript语言开发的应用领域,这就是所谓大前端的由来。

大前端的概念可以从不同的角度来理解,可以分为广义的“大前端”和狭义的“大前端”。广义的“大前端”是从前端技术(JavaScript语言)能解决问题的领域范围来定义的,有些领域并非传统意义上的前端领域范围,如桌面开发,但是Electron框架使用JavaScript语言进行开发,所以桌面开发也被包含在广义的“大前端”范围内。也就是说只要是使用前端技术去解决的领域都可以定义为“大前端”,如图1-1所示。图中深色的部分与后端,以及桌面端、移动端和页面端都有交集,这些交集组成了现在意义上的大前端。

图1-1 大前端体系图

而狭义的“大前端”是从全栈(传统前端+传统后端)的角度定义的,指从传统前端延伸到传统后端领域的整个全栈范围,如图1-2所示。

图1-2 狭义意义上的全栈(大前端)体系图