2006-2009
当时前端语言的能力还是很薄弱(html4+css2+ES3),主要工作是裁切设计稿,这就是所谓的“切图仔”
JQuery(2006)的出现才让前端开发者可以承担一部分交互了,尤其是异步表单提交
可以理解成对原生JS的封装,简化了繁琐的JS开发,
可以更容易地操作HTML文档、处理事件、创建动画、发起AJAX请求等
即DIV+CSS+jQuery+后端渲染的开发方式
原生CSS的开发效率已经不能满足需求,于是诞生了Sass这些css预处理,
提供了类似编程语言的功能(变量,嵌套规则,混合,继承,函数等) 更好效的处理样式表,
但是需要配置 IDFE 插件来编译成 css
web应用还是以后端为主,前端只是给后端打辅助的,无论薪水还是社会评价都是低人一等
ES5发布(2009),但是ES5仅仅是统一了一些标准、增加了一些方法特性,并没有带来革命性的变化
nodeJS(2009)出现,基于chrome v8引擎的js运行时环境,用于构建快速、可扩展的网络应用程序,
可以使用js写服务端程序(后主要用于中间层),采用了非阻塞I/O模型,能够高效处理大量并发请求。
JS项目的模块化、工程化需求日益强烈,于是民间社区自发创造了一些模块化的规范(CommonJs,AMD,CMD)
2010
智能手机终端的爆发式增长,移动互联网的兴起,移动优先设计理念开始盛行,响应式web设计成为重要趋势
PC和移动端,后端需要统一一套api,从此前后端正式分家
因此前端需要承担更多的工作 (静态页面 处理页面路由,交互逻辑等),显然 jQuery 已经无法满足
此时AngularJs出现了,引入了很多新的概念 双向数据绑定,依赖注入和模块化,
为 web 开发带来了革命性的变化,但是AngularJs是典型的 "精英" 框架 用后端思维设计的前端框架,
沿用了 MVC 思想,加上很多首创的概念,对于新手开发者来说学习曲线较为陡峭、晦涩难懂,所以不怎么流行
Express发布,是nodeJS web应用框架,用于构建web应用和api,更加容易和高效,
也因此用nodeJs开发后端程序变得流行
npm出现,npm包管理器,nodeJS开发者可以方便的安装,共享和管理包和依赖项,之后又辐射于前端,
形成庞大的开源社区生态,就这样前端通过民间自发的努力,完成了工程化
2011-2014
bootstrap(2011年发布)发布,首次使用了 “宫格” 响应式理念,预制丰富的样式和组件,
极大提高了前端开发效率,并为后续的各前端UI框架起到前驱意义
TypeScript(2012年发布) 由于 js 是动态语言,意味着 JS 基本与大型项目无缘或者需要在开发大型项目中
承担巨大的维护成本,TS可以让JS像静态语言一样开发项目,为JS开发大型项目扫清了障碍
WebPack(2012年发布),此时只是一个简单的模块打包工具
React(2013年发布) 由facebook发布,主要用于单页面中的交互式界面,
引入了虚拟DOM的概念 组件化开发单向数据流 JSX 语法,极大的改变了前端开发的方式,
推动了前端开发向组件化,高性能,高效率的方向发展
Gulp(2013年发布),基于流的前端自动化打包构建工具(把文件压缩,整合,移动,混淆... )
Koa(2013年发布),是ExpressJS的下一代框架,旨在解决Express中一些设计上的限制和缺陷,
使得异步编程更加优雅、代码更加清、,应用更加灵活
Vue(2014年发布) 结合了Angular和React的优点,提供了更简洁的API和更灵活的设计,
更像之前“套模板”的形式,深受老前端的喜爱,与“精英”框架不同的是,
Vue更接地气,组建了活跃的社区,编写了各语种的开发文档,还配上实例,
因此,迅速席卷整个前端圈子,拥有更广泛的开发者基础
HTML5(2014年发布) 满足了现代 web 应用对于交互性,多媒体,性能等方面的需求,
引入了许多新特性和API(语义化 表单控件,图形和多媒体元素以及各种web API)
CSS3(2010年发布,浏览器支持需要延后) 开始在主流浏览器中得到广泛支持
(boder-radius box-shadow text-shadow gradient animation transition flexbox)
前端进入HTML5+CSS3的时代,切图仔的时代结束了
业外人士误以为 H5 就是移动端网页,这个误会又反过来影响业内人士,H5成为移动端网页的代名词
2015
ES6(2015年发布),对JS进行了语法改进,增加了类、继承Promise等特性,制定了模块化标准,
使得JS变得更加现代化、强大和灵活,之后JS像脱缰的野马一样,大刀阔斧,攻城掠地,
涉足互联网的每一片土地,
从此JS不再是脚本,而是一门开发语言 前端开发者则是实质名归的工程师
React Native(2015年发布) 基于React的构建原生移动应用的框架(IOS,Android平台上的原生应用)
2016
在ES6的前提下,webpack支持ES Moudule,开始在前端社区迅速流行起来,
特别是在Vue和React的框架支持下,成为前端开发的标配,而后Vue和React两大阵营开始稳固
NextJS发布,基于React 的轻量级框架,提供了服务器渲染、静态导出等功能
使得React应用更易于优化和扩展,提供了更好的性能和SEO支持,成为构建现代Web应用的流行选择
NuxtJS发布,基于Vue的轻量级框架,功能几乎和Next一模一样
Svelte发布,和React,vue一样都是现代化前端框架,但是没有采用虚拟DOM技术,更加轻巧
2017
在React,Vue等组件化开发框架的发展下,DOM的复用不再是难题,在大型项目下,CSS的复用性名存实亡,
TailwindCSS发布,设计理念是提供一组原子类,快速构建样式,并成为NextJS框架的默认组件
Flutter发布,构建跨平台的移动应用框架,可以同时在IOS、Android、Web和桌面平台上运行
NestJS框架发布,设计灵感来源于Angular,借鉴了其模块化、依赖注入和装饰器等概念,
用于构建高效且可扩展的服务端应用程序,填补了NodeJS生态系统中一些框架的空白,
加上对TS的支持,为JS开发大型后端应用打下基础
2018-至今
在国内畸形的移动互联网发展背景下,各主流平台纷纷推出自己的小程序平台
Uniapp 基于vue的跨平台应用开发框架,一套代码发布多个平台(各平台小程序,H5,IOS,Android,)
Taro 基于React的跨平台应用开发框架,功能和uniapp一样
2019年底,疫情三年,每天都有新的形势新的变化,人员统计,表单收集,健康码等
都是临时性、紧迫性的业务需求,过去动辄上月甚至数年的开发周期显然不能满足,
是小程序承载了这一艰巨的任务
前端技术和生态都已经成熟
Vue3(2020年发布),支持TS,组合式API,更加适应现代化前端开发模式
Vite(2020年发布),现代化前端构建工具,利用模块热更新,按需编译等特性,
为开发者提供了快速、轻量级、现代化的前端构建工具,填补了webpack的性能瓶颈
ArkTS(2022年发布),华为推出,用于鸿蒙APP的开发,是基于TS扩展的语言,瞬间拥有了大量的开发者基础,
同时很有可能促进所有的终端开发都采用JS,那时,前端技术将迎来大一统
2023 NextJS14 推出了Server Actions,允许开发者直接在组件内编写服务端代码,前后端又不分离了?
2024以后 前端技术已经渗入了各个领域,未来有无限可能