前端架构核心问题

前端是个天然按照页面解耦的技术,在多页面架构中,页面的复杂度大约刚好适合一个人的工作量。

前端不存在分工问题,但是在多人协同时,仍然要解决质量和效率的问题,这就需要组件化了。除此之外还有前端特有的兼容性问题,也是需要从架构的角度去解决的。

前端领域还有一个特有的生态:框架,第一代前端框架(如 jQuery, PrototypeJS)重点解决了兼容问题和 API 的易用性问题,在现代浏览器普及之后,这些问题逐渐变得不存在或者不重要,所以第二代前端框架(如 Vue,Angular,React)重点解决了组件化问题。选择合适的框架,可以节约架构的成本,还能够享受社区资源。

核心问题一组件化

现行的组件化方案,目前有五种主流选择:

  • Web Component;
  • Vue;
  • React;
  • Angular;
  • 自研。

Web Component 是 W3C 推行的规范,一般的前端掌握起来都比较困难

Vue 是目前最受欢迎的框架(从 github star 来看),由华人程序员尤小右开发和维护。它有两个主要特点,一个是比较符合原本的 JavaScript/CSS/HTML 书写习惯;另一个是它绑定了 MVVM 模式,直接确定了 UI 架构,通过 DSL 的支持,数据交互非常简洁。

React 是 Facebook 推行的新一代 Web 框架。它利用 JSX 模式,把 HTML、CSS 和 JavaScript 都放进了 js 文件中,对于不喜欢 CSS 和 HTML 的前端工程师来说,是很理想的。它还可以迁移到 React Native,直接编写简单的客户端应用。

Angular 是 Google 推出的 Web 框架,它是比较标准的 MVVM 模式。Angular 曾经因为大版本兼容性而饱受诟病,目前它的核心竞争力是与 TypeScript 结合得较好。

核心问题二兼容性和适配性

1.随着现代浏览器的逐渐普及,兼容性问题逐渐减小

2.适配问题主要适配的是屏幕的三个要素。

  • 单位英寸像素数(Pixel Per Inch,PPI):现实世界的一英寸内像素数,决定了屏幕的显示质量。
  • 设备像素比率(Device Pixel Ratio,DPR):物理像素与逻辑像素(px)的对应关系。
  • 分辨率(Resolution):屏幕区域的宽高所占像素数。

在当前环境下,分辨率适配可以使用 vw 单位解决,DPR 适配则需要用到 CSS 的 viewport 规则来控制缩放比例解决,而 PPI 主要影响的是文字,可以采用 media 规则来适配。

核心问题三单页应用

浏览器加载 HTML 时是会有白屏过程的,对追求极致体验的团队来说,希望能够进一步提升体验,于是就有了“单页应用(SPA)”的概念。

单页应用重点是逻辑页面解耦、独立开发和发布和保持前进后退历史

核心问题四扩展前端新边界

除了解决现实问题,我认为前端架构的职责还包括扩展前端的边界,所以前端架构还包含了很多 Native 开发任务。

此文章为4月Day19学习笔记,内容来源于极客时间《重学前端》

你可能感兴趣的:(前端)