前端技术的发展轨迹图

发布时间:2026/8/30 19:06:38
前端技术的发展轨迹图 这一回讲解, 我会从整体层面来梳理前端开发一路走来的演进历史, 并且从渲染方案架构实现升级的案例着手, 引领你去知晓现代化开发的发展趋势。这部分内容并不关乎特定的技术细节方面, 更多的是能够作为此专栏的引导介绍, 带领你去感受现代化前端架构以及基建的产生背景, 还有当下前端开发所处的大环境状况。前端技术的发展历程, 在过去的十多年时间里, 前端技术的发展变化极为迅速, 互联网所呈现的热点趋势也从PC时代逐步过渡到移动时代, 甚至延伸至智能时代。在这期间, 前端岗位从一开始不存在, 发展到后来出现, 再到如今已然扮演了极为关键重要的角色。相应地, 前端的基建以及架构渐渐露了出来, 展现出百花齐放的情景, 技术环节当然也就越发复杂了。我们先来讲前端的技术发展轨迹, 如同下面的图所显示的: 在静态网页加上后端MVC技术架构的阶段, 严格来讲, 并没有专门的前端工程师这个职位。Web工程师大多集中在后端方向, 借助Model模型层来存储以及读取数据, 利用控制层处理数据并达成业务逻辑需 求最终在View视图层呈现数据!()前端技术的发展轨迹图。而在这一时刻, 每一回请求其实都对应着一项针对静态页面的生成过程予以呈现的操作, 而将此种技术所处时代称作Web1.0。随后, 伴随2005年这一时间段Ajax技术逐步诞生问世, 这一情况实则标志着从Web1.0朝着Web2.0进行的一项具备关键意义的演进历程。就在当下这个时段, 一种具备真实确切之意的前后端分离概念从而得以出现, 这种现象也致使前端工程师开始于开发岗位之中占据到了属于自身的一席之地。前端借助Ajax技术去获取相关数据, 借此开展页面的呈现展示以及交互方面的操作活动, 并且后端通常借助各类接口, 以此和前端展开协同合作。在此阶段, 前端对于数据有着大量的须处理情况, 所以前端MVC框架得以展开发展态势。比如说, 在早期的时候, 有那种极具鲜明代表性的.js 框架, 它们的架构风格是相当显著突出的, 我们能够来看一看像下面这样的代码: jsvar M .Model.({},{name:lucas}, ().{this.on(, (){this.log()})})var model new M()在这儿的.Model实际上不单单只是涵盖了数据{name:lucas}, 而且事实上还包含了在数据变更之际的监听事件。但若以上述代码当作示例, 要是业务复杂程度足够之高, 原本像一般状态机那样的代码, 便会摇身一变成为难以承受的负担, 代码数量也会急剧增加, 变得异常臃肿, 维护起来极其困难。伴随前端处理数据观念的变革更新, 一种更为新潮的MVVMView Model模式框架崭露头角, MVVM与MVC之间最大的差异在于此: MVVM运用双向绑定Data, 亦或是能够自动进行渲染更新。换言之, View层发生的变动, 能够自动在 层得以体现。 和Vue均采用此种模式。虽说官方宣称React仅仅是个View层类库, 然而React与数据状态管理生态搭配起来, 同样契合MVVM模式。当然React并非是双向绑定风格的解决办法, 自动渲染更新是一种潮流和方向。总体而言, 架构层面从MVC风格演进到MVVM风格, 既简化了数据与视图的依赖, 又处理了数据频繁更新的问题。又添上虚拟 DOM 理念, 从而为开发者遮蔽住 DOM 操作, 业界框架方案渐渐趋于稳定, 这般低耦合模式同样象征着现代化的设计理念, 在此时期, 前后端分离技术进展至顶峰, 前端框架也相互学习借鉴, 直至如今 Vue/React/ 形成三足鼎立的态势, 此时代的稳定性一直延续到 Node.js 的兴起, 伴随 Node.js 的现身, 稳固的技术体系即刻被打破。通过Node.js, 前端不仅在前端工具链、工程化方面实现了发展, 还打造出了BFFFor层, 如此架构设计的利好一目了然, 呈现出这般情况: 其一, 前端工程师能够自行编写后端服务, 达成数据适配, 其应用场景涵盖接口的整合编排以及字段裁剪其二, 前端工程师可推动SSR服务端渲染直出技术落地, 以此实现提升首屏性能并达成SEO友好的目标其三, 前端工程师能够构建各类后端领域服务。旨在“紧跟技术潮流”实现发展, Vue 以及 React 等备受瞩目的框架借助虚拟 DOM 技术, 推出同质化构架方案, 由此 SSR 架构模式陡然出现, 成为前端技术逐步演变的全新趋向, 然而 Node.js 技术并非万能解药, SSR 架构同样并非毫无代价, 前端工程师若要将 Node.js 技术交付实际应用, 便需关注服务器的运行维护、配置部署、数据发布以及监测监控。有没有一种技术, 它是叫做“just work”的那种, 能让有着这样想法的我们, 在专注于前端业务代码开发的时候, 更加轻松地直接去上手Node.js? 要解决前面提到的这个方面的问题, 于是某种理念就随之诞生了。简单来讲的话, 对于那服务器的运维功能, 我们能够都交给特定的平台去进行管理, 而研发人员只要专心致力于实现云函数, 就能够完成功能开发了。你瞧, 仅仅过去短短十多年时间, 前端技术的有关发展以及演进历史, 已然拥有了相当精彩的历程。实际上在这段演进的进程当中, 也是存在着许多值得去关注的各类里程碑以及具备代表性的技术理念的, 就仿佛下面要说到的这一些要点。1. 存在一种以技术作为代表的数据源聚合以及字段裁剪方案。2. 有一种以组件化架构作为代表的UI搭建技术, 于该UI搭建技术之中, 我们能够总结出一个微观技术方向, 其中包括: 有以原子组件作为基准的组件化方案Ant 、 出现了以模板库作为代表Ant Pro的一体化组件化方案 存在以No code/Low code作为代表的配置化解决方案 出现了以机器学习智能化作为代表的搭建方案设计图 → 代码直出。3. 有以微前端而作代表的、将前端应用聚合予以单体应用的工程方案。4. 存在以PWA、小程序、快应用等作为代表的平台化方案。5. 有以从 → Ionic → React → 等这样的演进方向作为代表的移动端跨端方案。总之, 前端技术发展从来都未曾有过一刻的停歇, 而在技术架构演进的这个过程当中, 需要前端开发者持续不断地保持进步以及进行学习。这里面, 关于基础建设以及架构设计的学习, 会是最为核心、最为重要的学习趋势跟目标。接下来, 我们简略知晓一番现代技术架构。现代化的前端技术架构阐释, 一方面, 前端范畴的现代技术架构, 始终没办法脱离应用终端及宿主。这之中: 前端不再限定于PC以及移动智能手机端, 智能手表、眼镜会是全新的平台趋向, 与此同时文件系统、相机、PWA以及硬件传感器等新型API都已然运用在Web前端里面。第二方面, 现代已然发展成一种真正成熟的语言, 而且还会持续引入新特性与功能。与此同时, 甚至 Elm 和将会获得更多关注。所以, 一套现代化前端方案, 必定要应对语言发展与宿主碎片化、滞后性这一矛盾, 也肯定会有一个更厚重的编译。第三方面, 网络基础设施始终在变得更快、更稳定, 流媒体以及视频点播成为日常, 前端的用户体验与富媒体技术越发成为应用的关键。上述背景之下, 现代化前端技术架构的特点便清晰呈现出来: 其一, 组件化属于基本 UI 架构其二, 依靠 SSR 同构技术以及心智负担的最小化, 框架层面所提供的虚拟 DOM 会成为生态标配其三, 数据状态管理方案会以职责單一且目标如何何为重点并不谈及, 而是以组合性、函数式為理念其四, 前端朝着传统后端领域迈进是必然趋势, 一种 CSR/SSR 可切换的协作方案能够将前端优势特点最大限度得到扩大。总的来说, 基础建设以及工程化建设还有代码设计与架构之道, 也会依据上述几个特点给出答案, 我们的课程同样会围绕这些方向去开展, 从CSR到SSR再到NSR又到ESR渲染方案的演进方向去看前端架构的演进走向, 以上我们是从宏观层面阐述了前端技术架构方向, 在这一部分, 我会把前端渲染架构当作例子, 从真实的技术环节, 更加立体地去说明架构的演进, 我会按照CSR到SSR再到NSR又到ESR的方案来进行讲解。CSR: 边, 浏览器端呈现在大家认知范围内里或许算是为众人最为熟知通晓的呈现架构。这种呈现架构比较易于领会理解, 就如同下面这幅图所展示呈现的那样: !()CSR呈现架构图图片的来源出处为: CSR呈现架构所具有的特质特点极为显著突出: 达成完成了前后端架构的相互分离, 达成完成了前后端各自职责的相互分离TTFB所需要耗费的时间是最小最少的, 然而但是因为客户端和服务端之间会存在有频率较多的多次交互行为去获取得到静态资源、去获取得到数据才能够进而展开进行呈现, 这使得实际真正意义上所能体现出来的首屏所产生成效效果以及FCP/FMP所需要耗费的时间并不够理想达意。针对的是CSR渲染时序图, 其图片来源是特定处, 我们唯有借助代码分离等技术去弥补实际内容渲染的滞后状况, 然而从渲染架构方面而言, CSR却存在着基因层面的弊端被提及, 其中, SSR是指Side, 它在服务端完成页面模板、数据预取、填充之举而实现内容的准备并且在服务端能够将完整的HTML内容返回给浏览器。如下所示: 有一个 SSR 渲染架构图, 其图片来源未知 , 还有一个 SSR 渲染时序图, 其图片来源也未知。实际上, SSR 所涉及的内容更为丰富: 我们于服务端预先获取了数据, 之后返回了数据以及 HTML 内容。在理想状况下, 并非要在客户端再度发起数据请求, 而是能够直接使用数据就行。所以我们能够把 SSR 和 CSR 相互结合起来, 也就是达成一个基于 注水 的 SSR 与 CSR 相结合的方案。首先来阐释一下 , 这个概念跟同构应用里数据的获取以及使用存在关联。于服务器端渲染之际, 先是服务端去请求接口以获取数据, 接着处理并备好数据状态, 要是运用 Redux, 那就展开 store 的更新操作, 为削减客户端的请求, 我们得留存此状态, 通常的办法是在服务端返回 HTML 字符串之时, 把数据 JSON 一同予以返回, 此过程, 称作脱水, 在客户端, 便无需再进行数据的请求, 能够径直使用服务端下发而来的数据, 此过程叫做注水。采用代码予以表示, 我们把数据放置于变量之上, 在jsctx.body 这里, 再对应客户端 const () { const JSON.parse(..state) (, , (thunk))}.(, .(root)), 而依托于的 SSR 方案, 像如下这般代码, 即(),能够采用将上面所述的渲染架构方案借由下面这张图去进行归纳总结, 即(),SSR 渲染架构方案相关图片其图片来源为, 实际上来看, 要是把性能优化做到接近于极厉害的范畴, SSR 便还能够演变成, 即 流式 SSR 渲染或者 渐进式 SSR 渲染。通过流式 SSR 渲染, 服务端能够以特定方式向浏览器发送 HTML 内容。于 React 里, 我们可运用特定方法去达成流式 SSR 渲染。渐进式 SSR 渲染可让在特定情况未完全结束前, 部分已渲染且注水完毕的页面内容, 能够优先达成交互响应。React 特地开了一个 PR 来展开讨论。在 SSR 技术情形下, 存在类似的相关技术以及借助特定事物完成的特定技术, 此处我们不再逐一探讨。提到 SSR 之后, 我们接着去瞧一瞧更具新潮特色的渲染技术: NSR 和 ESR 渲染方案在近些年正处于逐步落地推行的状态。NSR 即 Side , 它是一种存在于特定环境中的渲染技术。简要来讲就是借助特定方式渲染产出 HTML 数据, 并且将其缓存在客户端。如此这般, 对于某一种特定情况的用户探访, 会首先从离线包里加载离线页面模板, 然后通过前端 Ajax 或者客户端能力去请求数据, 最终达成页面完整的呈现。好处如此这般做可是明显地能看见的: 把服务器的渲染做事的任务安排在了一个个独自的移动装置里头, 还凭借离线存储的那技术, 达成了页面的预先加载, 并且也不会去增添额外的服务器的压力。ESR, 也就是Edge Side 什么的边际渲染情况是更愈发激进的。ESR说实在借助了近些年算比较火些的“边缘计算”具备的能力。边源计算指的呀, 是地处近靠物体或者数据那个源头的那一侧, 采用网络、计算、存储、应用核心那些能力形成一体的开放的平台, 就地提供最靠近一端的服务。它的应用程序于边缘侧展开, 进而衍生出更为迅速的网络服务回应, 以此去契合行业在实时业务, 以及应用智能, 还有安全与隐私保护若干方面的根本需要。边缘计算处于物理实体跟工业连接之中间, 又或者处于物理实体的最上端。然而云端计算依旧能够获取边缘计算的过往数据。ESR 渲染借助了 CDN 能力。CDN 上会缓存 ESR 页面的静态部分, 在用户访问页面时节, 能够快速给用户返回静态内容。与此同时, CDN 节点上也会发起动态部分内容请求, 当动态内容获取到的时候, 采用流的方式, 接着返回给用户。这项技术在阿里中已经进行了试水, 然而要真正更广泛地落地以及实施, 还需要后续验证及观察。总而言之, 借助边缘计算能力, 前端渲染架构的想象空间会被无限放大。讲述这一课时, 于近十多年间, 我们对前端技术之不断发展, 以及与之相关的技术方案, 深入纵览其演进历程。在此尤其以渲染的其架构作为实例, 着重去剖析从传统的常规CSR方法, 迈向SSR、NSR, 进而至ESR的这一思路。而这一整个系列的发展进程之中, 有的是凭借基础设施, 像网络的发展, 而得以形成优势的红利有的是依靠语言或者框架的逐步演进, 来作为发展的强有力的一种背书的

相关新闻