前端技术
前端技术在最近10年的发展非常快,5年前流行的框架可能现在已经没有多少人用了。
Jquery库
AJAX(AsynchronousJavascriptAndXML)这一技术概念在2005年提出,用来描述与浏览器有关的一类技术,包括:HTML/XHTML,CSS,JavaScript,DOM,XML,XSLT,以及最重要的XMLHttpRequest。
Ajax引擎通过HTTP请求加载远程数据。
使用AJAX技术的网页应用能够快速地将增量信息呈现在用户界面上,而不需要刷新整个页面,极大地提升了Web应用的用户体验。Jquery就是AJAX技术发展到一定程度后而产生的集大成者。
Jquery不是一个框架,而是一个Javascript库,可以说极大简化了JS编程,是过去十年间前端开发最常用的库。如果没有Jquery的话,AJAX编程还是有些难度的。
现在Web开发多以前后端分离的MVVM框架为主流开发方式,直接使用Jquery的越来越少,一般后端开发人员在开发后台管理系统时可能还会用到。
MVVM框架
MVVM(Model–View–ViewModel)是一个软件架构设计模式,由微软WPF和Silverlight的架构师KenCooper和TedPeters开发,是一种事件驱动的编程方式。MVVM的出现促进了GUI前端开发与后端业务逻辑的分离,极大地提高了前端开发效率。
MVVM框架
目前比较常见的MVVM框架包括:Angular、Vue和React。
AngularJS诞生于2009年,由MiskoHevery等人创建,后为Google所收购。Angular是AngularJS的重写,Angular2.0以后版本命名为Angular,2.0以前版本为AngualrJS。AngularJS是用JavaScript编写,而Angular采用TypeScript语言编写,是ECMAScript6的超集。
Vue可以说是国内开发者使用最多的“框架”,准确来说vue不算是一个MVVM框架,而是一个构建由数据驱动的Web界面的Javascript库。因为vue核心库只聚焦在V(view)视图层,不仅易于上手,还便于与第三方库或既有项目整合。值得一提的是,Vue是来自中国的大神尤雨溪开发的。
React起源于Facebook的内部项目,用来架设Instagram的网站,并于2013年5月开源,目前主要是由Facebook在维护,一些React周边库也有开源社区在维护。
Angular、React、Vue,谁是大家心目中最好的框架
与Vue相比,React的学习会更加复杂一些,使用React需要有ES6的基础,因为很多React组件都是用ES6的class创建的。此外JSX是React的核心组成部分,它使用XML标记的方式去直接声明界面,界面组件之间可以互相嵌套。对于JSX语法,还是有一定的学习成本的。
对于要想从事前端开发的同学,务必熟练掌握一种框架,建议以vue框架为主,兼修React。除了MVVM框架,也最好熟练掌握一到两种UI框架(以CSS样式文件为主),能够快速开发出展示和交互效果都比较好的应用。
UI框架
Bootstrap是早期最流行的UI框架,很多框架都衍生于它
目前主流UI框架基本都是自适应的,不过仍然有适用于PC端和移动端之分。
较早广为流行的PC端UI框架要数bootstrap,很多UI框架都是基于bootstrap基础上进行改造而成。目前比较流行的PC端框架是layui,后端开发人员用得比较多。如果采用前后端分离的话,那PC端框架常用饿了么公司的开源框架elementUI.
常见的移动端框架包括:WeUI、mintUI、VantUI等。对于前端开发者来说,最好PC端和移动端框架各掌握一种。
混合App
越来越多原生APP开始引入web开发技术,形成混合APP
随着HTML5+CSS3+JS开发的web应用的性能和用户体验越来越好,很多公司都开始使用web技术开发APP,包括浏览器套壳APP或者混合APP。
用web技术来开发APP的好处是可以用一套代码同时兼容安卓和苹果系统,这样在开发应用的时候就可以节省一半的人工。另外也可以使得安卓和苹果系统的更新进度保持同步,实现快速迭代,节省应用市场的审核时间。
常用的混合APP框架包括:
- Cordova:ApacheCordova是一个开源的移动开发框架,允许开发者使用标准的web技术-HTML5,CSS3和JavaScript做跨平台开发。
- ionic:ionic是一个基于Cordova的轻量级库,在Cordova基础上加上了AngularJS和一套样式库。AngularJS实现MVVM理念的双向数据绑定,UI样式库具有界面现代化和美观的特点。
- ReactNative:能够在Javascript和React的基础上,在不同平台上获得完全一致的开发体验,理念是仅需学习一次,编写任何平台。但在不同平台下仍然需要写多套代码。
- Weex:Weex是2016年6月由阿里巴巴推出的一个跨平台开发解决方案,支持iOS、安卓、YunOS及Web等多端开发部署。
- Flutter:Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。
- Dcloud:国内厂商开发的框架,对HTML5的性能、工具、能力都做了深入扩展,提供IDE、云服务等帮助节省开发时间和提升效率。