返回顶部
首页 > 资讯 > 精选 >如何正确挑选网站前端框架
  • 947
分享到

如何正确挑选网站前端框架

2023-06-10 10:06:09 947人浏览 泡泡鱼
摘要

这篇文章主要介绍“如何正确挑选网站前端框架”,在日常操作中,相信很多人在如何正确挑选网站前端框架问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何正确挑选网站前端框架”的疑惑有所帮助!接下来,请跟着小编一起来

这篇文章主要介绍“如何正确挑选网站前端框架”,在日常操作中,相信很多人在如何正确挑选网站前端框架问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何正确挑选网站前端框架”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

前端框架不断推新,众多IT企业都面临着“如何选择框架”,“是否需要再造轮子”的抉择。去哪儿网前端架构师司徒正美分析了各主流行框架优劣点、适用场景,并针对不同规模的公司、项目给出了相应的前端技术选择方案。
最近几年,前端技术迅猛发展,差不多每年都会冒出一款主流的框架。 每次新开业务线或启动新项目时,首先第一件事就是纠结:使用什么框架,重造什么轮子?


RequireJS,前端技术发展分水岭

在五六年前,移动端还没有兴起,我们没有什么选择,就是Jquery。有人会说,jQuery只是类库,不是框架;但那时前端业务还没有像今天这么繁重,原本是后端干的事,全部挪到前端来,因为光是jQuery就可以包打天下。jQuery不够用,还有成千上万的jQuery的插件呢。于是问题就是这样一一衍生出来了,一个页面太多jQuery插件了,请求数太多了,于是我们得打包。打包需要我们对插件有规划。于是这一需求在社区上逐渐形成了某些规则,其中最出名的是AMD规范,体现上Requirejs这个加载库上。

RequireJS是前端技术发展上的一个分水岭。javascriptes6之前一直没有自己的加载机制,RequireJS的出现意味着前端可以向更大规模发展。以后我说的技术选型,一个非常重要的甄选点, 即是否存在加载器机制或符合某个模块规范。

选择前端框架应综合考虑框架本身与团队情况

回到原来的话题,选择框架要从两面看,一是看该框架的本领,二是看你们团队的能耐。

从框架的角度来看, 它的功能丰富不丰富、社区活跃度如何、国内社区活跃度如何(有的在国外流行,但国内只有初创公司或一些大公司的边缘项目在试水)、文档齐全与否、是否及时更新、测试覆盖率如何、上手难易度如何,都是我们考量点。不过能进我们视野内的外国框架,基本是身经百战,在造轮子兴盛的世界闯出来的领头羊。jQuery、angular、KnockOut、Emberjs、Polymer、React、Backbone、Zepto,我们基本是围绕在这几个上面转了。当然还有更大型的东西,如EXT、 YUI、Dojo、EasyUI、Bootstrap,这是UI库层面的。

下面是2012年外国对当时流行12个JavasScript mvc框架的纯技术评估:
如何正确挑选网站前端框架

显然,我们第一步就是圈定时下最流行的框架与库作为评估对象,然后再根据自家公司的情况进行筛选。贵公司是建站公司,还是有自己产品的公司呢?如果是建站公司,页面不会复杂到哪里去,基本上jQuery+Bootstrap搞定,不要想得太多,就是它们。如果有自己产品, 要维护一大堆客户数据,要与客户打交道,不难想象存在非常复杂的CRM系统,按照中国人的特性,这东西只会越来越复杂,这就要慎重考虑了。这往往是持续十年的维护升级,我们需要看一下某框架是否有你们的产品那么长寿,这框架的升级更新是否频繁平缓。

大工程应尽量避开谷歌产品

如果你的项目是一个跨度三年以上的大工程,用《人月神话》的术语来说,90%就是个焦油坑。我们需要使用更稳健成熟的技术方案,我们需要重点避开谷歌的产品,它的许多产品都是玩票性质,GWT、Closure、darty就是前车之鉴。Polymer基于许多新技术构建,其中Object.observe()、 Custom Elements、html Imports、Shadow DOM、Model-Driven Views还远远没被标准化, 许多还是独家的,变数太大,因此才出现下图所示的悲剧。 Angular不是我黑它,这东西也喜欢断崖式升级,它在1.08时兼容IE6-8,1.2时需要打补丁兼容旧式IE,1.3摒弃了对旧式IE的兼容,直接在源码中删除了所有兼容代码,因此所有补丁方案都无力回天,并且不支持全局Ctrl函数,许多模块需要独立引用,1.4不向下支持动画模块,2.0由at改成ts构建,由于使用Object.observe(),因此不支持IE6-11,Chrome30……
如何正确挑选网站前端框架

后台系统可考虑EXT、EasyUI,avalon等国内优秀框架也值得考虑

如果你们的产品是后台系统,那么就有两个选择,使用EXT、EasyUI这些重大的UI库方案,其中EXT具有严重的排它性,它很难与其他前端解决方案并用。什么模块组织、打包、数据可视化,它都已经能全部帮你搞定。它文档齐备漂亮,入门难度中等,但它要求你的团队非常稳定,现在招一个专职EXT的前端是很难的。EasyUI是国内比较大牌的UI框架,虽然闭源,不过想扩展它不是难事。

此外,国内的淘宝Kissy, 网易Nej也不错。还有更轻量的方案:MVVM。MVVM最擅长做这些重交互的产品。举例说,为了对应复杂交互的Gird,jQuery社区开发出各种庞大巨物DataGrid、jqGrid、FlexiGrid,还不如MVVM几个循环绑定来得干脆利落,扩展性又好。目前,KnockOut、Emberjs、Angular与我写的avalon就是这一类框架。Angular虽然有点坑,但如果你是从1.3用起,并且不鸟IE,它还是一个不错的选择,其活跃的社区为它带来无限的可能。KnockOut在.net人群中非常流行,微软出品,前端MVVM框架的鼻祖,不过它需要对后端数据进行过多的加工,因为它本身是不支持对套嵌对象的绑定。Emberjs没有一个好干爹,但有一个好亲爹,作者Yehuda Katz是jQuery, Rails、SprouteCore、Merb、Handlebars这些著名框架的核心成员,虎父无犬子,Emberjs现在还是国外的第二大MVVM框架。avalon是比较适合国情的MVVM,有它专门兼容IE6的版本,易上手,性能高,视频教程多,出了问题可以抓得着作者,是它的几大卖点。

重SEO产品,可考虑jQuery+Bootstrap+RequireJS组合

如果你们的产品是商场这样重演示类的产品,就对SEO有要求,MVVM就不适合了。目前也就Angular与avalon在搞后端渲染机制,但还不上了台面。这时jQuery+Bootstrap+RequireJS就非常好用。RequireJS的作用不单单是提供了一个按需加载机制,它还能让我们组织起更为庞大的代码。如果不用RequireJS,国内另一个选择是SeaJS,它的规范是CMD。此外还有CommonJS规范,但这无法直接运行于前端,需要借助fekit、FIS、webpack这样的构建工具进行合并了。不管怎么说,你这时选用的框架必须存在AMD、CMD或CommonJS任一种加载规范,这方便你以后的横向扩展。至于插件,目前小插件们都趋向用UMD,它可以让AMD、CMD、CommonJS任一种加载器加载。

移动端技术较混乱,需多管齐下

如果你们的产品是移动端,基本上是SPA架构了,因为这会减少等待,整页刷新与请求数。目前该领域非常混乱,不同于PC端,要兼容的浏览器多出N倍,并且为了性能,浏览器商乱砍功能或改变一些浏览器特性的行为,往往引发一些奇怪的BUG,目前社区正在整理这些坑与解药。但目前没有一个框架能够摆平所有问题,都需要多管齐下。我的见解是:

RequireJS(按需加载,移动端上可以不打包,善用304缓存,腾讯搞出一个更牛叉的增量更新加载器MT,也可以试试)+Backbone(组织代码与路由管理)+Zepto(轻量DOM操作) + fastclick.js(点击穿透与延迟处理)+Hammer.js(各种触屏事件)+iScroll5.js(滚动条处理)+Animate.CSScss3动画)+Enquire.js(处理响应式布局)。

可见移动端每个部件都烂到蕊了,每个部件都需要专门的工具进行修复。移动端是非常注重体验的,每一个小角落都存在着各种动画,但浏览器或自带的WEBView都很差劲,于是Native与Hybird的话题才一直这么火。有的人说,既然DOM最吃性能,那么就干脆用canvas来代替吧(请见:Http://zhuanlan.zhihu.com/FrontendMagazine/19967854 与http://www.ruanyifeng.com/blog/2015/02/future-of-dom.html )。Facebook也推出了自己类似的方案React Native,自己实现了一套GUI,不过编写语言是JavaScript。它是使用自己原来的超高性能轮子React实现的。这或者是一条道路。但优缺点也明显,正如Angular浓浓的Java风,React是在逻辑中插入大段标签语言(JSX)。同时React的排它性也非常强,很难与其它库搭配使用。同时,我们可以看到,出自jQuery名门的jQuery Mobile并没有入围,那个性能太糟了,连Sencha Touch也不及。上面说的只是核心库, 还没有搬出UI库呢。号称Mobile First的UI库不在少数,由于无视IE,可以大胆使用CSS3。目前比较出彩的有Foundation、Semantic,Refill、Ratchet。如果只是想运行在平板上,性能问题就不会那么拮据了,我们还可以试试inoic、Sencha Touch, Kendo UI Mobile……

没有最好,选择最适合自己的

基本上,针对每个平台,我都列出一些主流框架,但不意味着你们都能驾驭得住。小马过马,老牛没过膝,松鼠淹个半死,就是这么回事。创业公司喜欢新框架,这与他们拿得起高薪招一两个前端牛人所致,基本上所有页面就是他们干的,因此用Angular或Ember都没区别。小公司则小心,人员流失大,jQuery+RequireJS是万金油。大公司则基本上有自己的技术沉淀,换言之,应该有自己的前端框架,除非那东西很陈旧,不建议再造轮子。对大公司的建议是搞自己的技术委员会,根据自己的人员配置来挑选的框架。有句话说得好,不求最好,但求最合适。有些框架就属于牛逼人手里牛逼闪闪,二逼人手里一团乱麻。对于某些成长特别快的中等公司来说,这点最需防范,牛人是有的,但作战的主体70%都是刚培训出来的实习生,难上手,中文文档不全的框架就必须过滤掉。我也不排除造轮子的可能性,毕竟有些公司就是人才济济,能推出一些靠谱的开源产品来造福社区。

但无论我们选择什么框架或决定自己动手造轮子,都勿忘初心,技术必须让我们工作生活更为轻松愉快——我们只选择我们能驾驭住的框架,我们不能保证它在一年后是否会过时落后,但至少不会变成绊脚石。套用亚当·斯密的话(税收是一种必要的恶)来说,框架是一种必要的恶,它是强约束的,因此必须慎重选择。

到此,关于“如何正确挑选网站前端框架”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 如何正确挑选网站前端框架

本文链接: https://www.lsjlt.com/news/260192.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何正确挑选网站前端框架
    这篇文章主要介绍“如何正确挑选网站前端框架”,在日常操作中,相信很多人在如何正确挑选网站前端框架问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何正确挑选网站前端框架”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-10
  • Django 和 ASP 框架对象:如何选择正确的框架?
    在开发 Web 应用程序时,选择正确的框架是至关重要的。框架可以帮助你加快开发速度,减少代码错误,提高应用程序的可维护性。Django 和 ASP 是两个流行的框架,它们都有自己的优缺点。在本文中,我们将比较 Django 和 ASP 框...
    99+
    2023-11-11
    框架 对象 django
  • 如何正确选购网站服务器
    确定您的需求:在选购网站服务器之前,首先要明确您网站的流量预期、数据库大小、页面加载速度等需求。根据这些需求确定所需要的服务器性能...
    99+
    2024-04-09
    服务器
  • 如何选择正确的网站建设公司
    如何选择正确的网站建设公司?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。在选择网站建设公司的时候,要考虑到几个问题。1、服务。2、便利。3、质量效果。服务比如寻找网站建设公...
    99+
    2023-06-07
  • 如何正确选择网站空间服务器
    选择网站空间服务器时,需要考虑以下几个方面: 服务器性能:选择具有良好性能的服务器,能够稳定运行并快速响应用户请求。 带宽和...
    99+
    2024-04-15
    服务器
  • 电商网站如何正确选择服务器
    在选择服务器时,电商网站需要考虑以下几个方面: 性能要求:根据网站的访问量、交易量和用户活跃度等因素来确定服务器的性能要求。如果...
    99+
    2024-04-03
    服务器
  • 网站空间服务器如何正确选择
    选择网站空间服务器时,需要考虑以下几个因素: 资源需求:根据网站的流量、访问量和需求来选择合适的服务器配置,确保能够稳定运行并提...
    99+
    2024-04-16
    服务器
  • C++框架该如何正确理解
    本篇文章为大家展示了C++框架该如何正确理解,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。C++编程语言中,有很多比较重要的内容值得我们去深入研究。这些基础内容的理解不但能帮助我们掌握C++,而且还...
    99+
    2023-06-17
  • 如何正确的使用SimpleCommand框架
    这期内容当中小编将会给大家带来有关如何正确的使用SimpleCommand框架,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。使用场景:此框架并不适合于短时间内有大量请求的场景,比较适合于并发执行4~6个异...
    99+
    2023-05-30
    simplecommand
  • 如何正确的使用Kryo框架
    本篇文章给大家分享的是有关如何正确的使用Kryo框架,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。使用方法如下:</pre><pre name="c...
    99+
    2023-05-31
    kryo
  • 如何在 Java 框架中选择正确的数据类型?
    随着 Java 应用程序的不断发展,数据类型的选择变得越来越重要。选择正确的数据类型对于程序的性能和可维护性至关重要。在本文中,我们将探讨如何在 Java 框架中选择正确的数据类型。 Java 中的数据类型可以分为两种:基本数据类型和引用数...
    99+
    2023-10-13
    框架 数据类型 接口
  • 如何正确的挑选国内的高防服务器
    正确选购国内高防服务器的方面:1. 服务商提供的服务器是否能保障数据的安全,是否有专门的防护墙。2. 服务器上的带宽是否是独立带宽,看系统的稳定性是否符合在线率的要求。3. 高防服务器带宽是否强大的承载能力,是否能够满足后期日益增长的访问量...
    99+
    2024-04-02
  • 如何挑选最适合项目的PHP框架?
    根据您的项目需求和偏好,选择适合的 php 框架。laravel 适合小型到中型项目,因为它易于使用且功能丰富。symfony 适合大型、复杂的项目,因为它提供了灵活性、可扩展性和企业级...
    99+
    2024-05-23
    php框架 项目选择 laravel 社交网络
  • 如何在Golang项目中选择适合的前端框架?
    在Golang项目中选择适合的前端框架一直是开发者们关注的话题。随着前端技术的不断发展,前端框架也层出不穷,如何根据项目需求来选择适合的前端框架是至关重要的。本文将介绍在Golang项...
    99+
    2024-03-05
    golang项目 前端框架选择 适合编程 api调用
  • PHP、Vue和React:如何选择最适合的前端框架?
    PHP、Vue和React:如何选择最适合的前端框架? 随着互联网技术的不断发展,前端框架在Web开发中起着至关重要的作用。PHP、Vue和React作为三种具有代表性的前端框架,每一...
    99+
    2024-03-15
    react vue php
  • 网站挑选适宜的Web开发框架应注意哪些问题
    本篇内容主要讲解“网站挑选适宜的Web开发框架应注意哪些问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“网站挑选适宜的Web开发框架应注意哪些问题”吧!1.  语法拥有优雅语法的语言...
    99+
    2023-06-10
  • 教你如何正确的使用Spring Boot框架
    本篇文章为大家展示了教你如何正确的使用Spring Boot框架,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Spring Boot主要有如下核心功能:独立运行的Spring项目Spring Boo...
    99+
    2023-05-31
    springboot spring boo
  • 如何挑选适合网站的ssl证书
    选择适合网站的 SSL 证书时,可以考虑以下几个因素: 加密级别:根据网站所需的安全级别选择合适的加密级别,一般来说,越高的加密级...
    99+
    2024-04-02
  • 企业网站如何挑选香港服务器
    企业网站挑选香港服务器的条件:1. 企业要考虑服务器的硬件要素, 是否达到网站的需求要,要依据本身网站的数据量以及并发数来挑选相应的服务器。2. 注意服务器的稳定性,要保证网站的后期优化工作,提供搜索引擎的友好体验。3. 要保证网站打开速度...
    99+
    2024-04-02
  • 如何使用移动HTML5前端框架MUI
    小编给大家分享一下如何使用移动HTML5前端框架MUI,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、 使用该框架之前的准备工作1. 新建含mui的HTML文件在Hbuilder中,新建...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作