前端为什么会越来越复杂?

前端发展多年来越来越复杂的原因有几个方面。

首先,随着互联网和移动设备的普及,人们对于网页和应用程序的要求越来越高。用户期望具有更丰富、更交互性的用户界面,这就推动了前端技术的发展。为了实现这些要求,前端开发人员需要不断学习和应用新的技术和工具,如HTML5、CSS3、JavaScript框架(如React、Angular、Vue.js)以及各种前端工具和库。

其次,前端开发从传统的静态网页渲染发展到了动态Web应用程序和单页应用(SPA),这增加了前端开发的复杂性。SPA通过AJAX和JavaScript等技术实现了在同一个页面内切换内容,使得用户体验更加流畅。然而,这也引入了诸多挑战,如页面状态管理、路由控制和数据交互等,需要前端开发人员熟悉更多的技术和方法。

此外,前端开发还需要兼容不同的浏览器和设备。不同浏览器的实现标准存在差异,导致同一份代码在不同浏览器上呈现效果不一致。同时,移动设备的多样化也增加了前端开发的复杂性,需要适配不同屏幕尺寸、分辨率和触摸操作。

前端的发展主要是为了解决提升用户体验和界面交互的问题。通过采用新的技术和工具,前端开发可以实现更快速的页面加载、更丰富的内容展示、更流畅的动画效果以及更好的响应式设计。这些技术使得用户可以在网页或应用程序上更加高效地完成任务,并提供了更好的用户满意度和互动体验。

对于解决这些问题的有效项目或正确做法,可以有以下例子:

  1. 使用现代的前端框架和库:如React、Angular、Vue.js等可以提供组件化开发、虚拟DOM和状态管理等功能,大大简化了前端开发的复杂性和提高了开发效率。
  2. 响应式设计:通过使用CSS媒体查询和弹性布局等技术,使得网页和应用程序能够适应不同的设备和屏幕尺寸,提供一致的用户体验。
  3. 性能优化:优化前端代码和资源加载,减少页面加载时间,提升用户访问速度和整体性能。
  4. 单元测试和自动化构建:使用工具如Jest、Mocha、Webpack等来进行单元测试和自动化构建,确保代码质量和提高开发效率。
  5. 用户体验研究和用户反馈:通过收集用户反馈并进行用户行为分析,不断改进用户界面和交互,提供更好的用户体验。




这个问题要看从什么样的角度来看待,从工程结构化和目前前后端分离的开发模式来看,其实前端是变简单了。

为什么这么说呢?

因为以前做前端需要和后端紧密配合,像我是做后端的,刚开始做开发时,那时候把前端都揉在一个JSP页面里面,可能前端开发还得懂点后端的标签语言什么的,例如JSTL这些,整个页面后期前端开发人员想要维护可是非常复杂和非常痛苦的。

但如果从现在前端要求需要会的各种开发框架和组件来说,技能要求越来越多,技术的复杂度也越来越高了,那确实是比以前复杂了。

以前一个前端可能就要求会html、js、外加个jQuery基本就能独步天下了,现在的前端基本要会三大框架(Vue、React、Angular),还需要会各种组件Element-UI等等,技术要求变高了,自然也就复杂了。

但随之带来的好处就是前后端分离了,各端可以并行研发,只需要约定好数据交互文档就行,同时前端的薪水也变高了,现在一个优秀的前端的薪水差不多能赶上后端了。

这里是Seven的代码实验室,我是管理员Seven,公众号【Seven的代码实验室】欢迎订阅。




这个问题问的好。。首先要搞清楚为什么需要前端,前端的本质是什么,一句话,前端是为了可视化访问与可视化交互。。

前端为什么越来越复杂呢?其实也很好理解。互联网的初期,前端的主要作用还是远程数据可视化访问;与此同时,还有一种方式能够满足可视化数据访问的需求,那就是桌面客户端软件或者APP,客户端软件不仅仅能实现数据可视化还可以完成复杂的动态交互甚至还能完成很多个性化的功能以及高性能的实时渲染;而此时的前端就是干巴巴的访问。随着ajax的出现以及js脚本功能的增强,前端也逐步可以实现一些传统桌面客户端软件所具备的复杂交互功能了,典型的vue框架下单页面应用,越来越像客户端软件(或者App)的工作方式了,它并不是每次请求整个页面,而是使用固定的界面,通过异步接口来请求数据(只请求数据不请求页面),然后根据数据更新相应的dom让页面发生变化,这不正是客户端软件的工作方式吗?不同的是,前端基本上只能处理json明文,而客户端软件(APP)即可以处理json也可以处理纯二进制数据。

但是,即便如此,目前的前端无论在功能上还是渲染性能上跟客户端软件仍不可同日而语,因此又出现了webassembly技术,为了能够让前端的性能更接近于客户端软件的性能。

说到这里,基本上能够看到结论,前端之所以越来越复杂,就是为了让前端能够更接近客户端软件(或App)的体验。

最后说点题外话,c/s架构与b/s架构(甚至还有三层架构)的优劣一直都是争论不休的话题,本质上只有一种架构,那就是c/s架构,b/s也只不过是另外一种c/s,你想想浏览器难道不是客户端软件?他们之间的不同在于客户端的负载不同,也就是胖客户端和瘦客户端的区别。所以b/s发展至今,以完全取代原生态桌面应用为目标我认为有点误入歧途了;前端是跑在浏览器上的,你下达的一切指令由浏览器解释执行,而桌面程序直接跑在操作系统上,可以使用系统的一切特性,单就功能性能以及体验,二者之间有不可逾越的鸿沟。如果说未来真的要统一前端和原生桌面程序,一定不是以纯浏览器的形式,浏览器的先天不足太多了(例如多核多线程渲染、设备访问能力)。目前出现了一些混合模式的app,也就是客户端软件中加载一个浏览器内核,可享受到浏览器的便利同时也能使用操作系统的特性,但是这种方式过于复杂,并且没有从根本上解决问题,不伦不类。。。那么未来究竟前端会以什么形态存在,随着物联网的发展一切会有定论,而且我始终认为通过json明文进行数据交互确实便捷,但同时也是对资源的巨大浪费,不符合低碳的理念。未来的发展会围绕高效、便捷和低碳,未来终究会到来,我们拭目以待!




个人认为主要原因在于两方面:

第一,随着互联网的发展以及终端用户对于计算机的掌握越来越纯熟,人们对于人机交互、视觉呈现越来越高,导致前端在响应这些需求时候不得不耗尽所有可能来解决。

第二,为了解决以上问题,出现了很多前端框架,这些框架分工越来越细,展现出的效果也非常强悍,但由此导致了框架的内耗和互卷。




其实总结起来就是工程化,因为现代网页要承载信息愈加的丰富。其实可以回顾一下WEB前端发展概况,传统WEB开发以HTML⽂件为中⼼,引⼊JS,CSS; 开发方式前后端混合,库/框架以jQuery为主,其他为辅;以DOM为中⼼,没有组件化开发的概念; WEB前端发展2.0的时期以JS为中⼼;.组件化开发;数据流管理; UI设计规范化;具有统⼀的模块管理; ⼯具链采用包管理、构建、布署;以及使⽤改进的语⾔,如ES6,Sass等;WEB前端发展全栈化:以Serverless为基础设施;使⽤node实现中⼩规模的后端 全端化, 使⽤同样的框架输出原⽣的⼩程序、APP和桌⾯应⽤。 虽然前端越来越复杂,但是框架的引入更有利于前端的工程化以及满足企业需求。

展开阅读全文

页面更新:2024-03-20

标签:应用程序   架构   组件   框架   浏览器   桌面   性能   页面   代码   功能   方式   网页   数据   用户   财经   技术

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top