1、什么是大前端?
传统上,Web应用可分为前端(在浏览器中执行的部分)和后端(在服务器中执行的部分)。
前端工程师的职责是以Web技术(HTML、CSS、JavaScript、DOM、Ajax等)实现基于浏览器的用户界面。以相衔接的工作来说,是将视觉设计师、交互设计师的工作成果转化为可运行代码,完成的代码则要交付给后端工程师,进一步完成代码集成、测试、发布和部署。这样一种体系可能存在不少问题。“大前端”则是将传统上归于后端的服务器脚本和模板划归到前端。
由于node的出现,前端工程师不需要依赖于后端程序而直接运行,从而前后端分离起来。所以当开发一个新产品的时候服务只需要写一次,但是面向用户的产品可能有很多,例如网站、Android客户端、iOS客户端和微信小程序等。由于各个平台使用的技术栈都不一样,代码无法复用,非常浪费人力、物力。那么有没有什么技术能够解决这一痛点呢?大前端应运而生,其实大前端的主要核心就是跨平台技术,有了跨平台技术,各个平台的差异性就抹平了,开发者只需要一套技术栈就可以开发出适用于多个平台的客户端。
大前端是所有前端的统称,比如Android、iOS、web、Watch等,最接近用户的那一层也就是UI层,然后将其统一起来,就是大前端。大前端最大的特点在于一次开发,同时适用于所有平台,开发者不用为一个APP需要做Android和iOS两种模式而担心。大前端是web统一的时代,利用web不仅能开发出网站,更可以开发手机端web应用和移动端应用程序。
换个说法再说一遍:在 CS 时代,客户端只有 PC,在 Web 石器化时代前后端处于混沌状态,前端只是艺术家创造个人艺术作品的形式,渐渐的出现了天生前后端分离的移动端,直到 Web 端也出现前后端分离,客户端呈现出多样化态势,这时候后端开发人员可能针对不同的端开发大量具有冗余业务的接口,后端开发人员面对的往往是 Android,IOS,H5 三方的开发人员,大前端的概念正是为了解决这种状况,所有的客户端无论你是 Android,IOS,还是 WEB 端,对于后端人员来说只有“大前端”,后端开人员无需针对特定的某一端进行开发,而仅仅是面向大前端进行开发。
2、移动应用程序开发
ReactNative(知名)
一个基于 javascript 的框架,用于创建本地移动 Android 和 iOS 平台应用程序。它基于 Facebook 的 JavaScript 库 React,为移动平台创建用户界面。网络开发人员可以使用 React Native JavaScript 编写 Android 和 iOS 应用程序,这些程序的操作和外观都与本地应用程序相似。
官网链接:https://reactnative.dev/
NativeScript
一个基于Apache 2.0许可的Github开源项目。它的思路就是使用移动平台的 JavaScript 引擎来进行跨平台开发。
官网链接:https://nativescript.org/
Flutter(用过)
一个由谷歌开发的开源移动应用软件开发工具包,用于为Android、iOS、Windows、Mac、Linux、Google Fuchsia开发应用。
官网链接:https://flutter.dev/
Ionic
一个强大的混合式/hybridHTML5移动开发框架,特点是使用标准的HTML、 CSS和JavaScript,开发跨平台(目前支持:Android、iOS) 的原生App应用。
官网链接:https://ionicframework.com/
3、桌面应用程序开发
Electron
GitHub开发的一个开源框架。它通过使用Node.js和Chromium的渲染引擎完成跨平台的桌面GUI应用程序的开发。
Electron现已被多个开源Web应用程序用于前端与后端的开发,著名项目包括GitHub的Atom和微软的Visual Studio Code。