您当前的位置:首页 > 电脑百科 > 程序开发 > 框架

2020年前端框架的比较

时间:2020-03-25 10:37:14  来源:  作者:

2020年前端框架的比较

 

我们再做一次。 这是2020年,还有2019年,2018年和2017年。

首先让我开始-绝对不是您应该为前端选择的比较。 它是对三个方面的比较小而相对简单的:性能,大小和非常相似的应用程序的代码行。

考虑到这一点,它是如何工作的:

我们正在比较RealWorld应用程序-不仅仅是"要做"的应用程序。 通常,"待办事项"没有传达足够的知识和观点来实际构建实际的应用程序。

它以某种方式标准化-一个符合某些规则的项目-有一个规范。 提供后端API,静态标记和样式。

由专家撰写或审查-一个一致的,真实世界的项目,理想情况下,该技术的专家应建立或审查。

我们正在比较哪些库/框架

在撰写本文时,在RealWorld存储库中有24种Conduit实现。 是否有大量的追随者都没有关系。 唯一的条件是-它显示在RealWorld回购页面上。

2020年前端框架的比较

 

我们看什么指标?

性能-此应用需要多长时间才能显示内容并变得可用?

大小-该应用程序有多大? 我们将只比较已编译的JAVAScript文件的大小。 htmlcss对所有变体都是通用的,并且是从CDN(内容交付网络)下载的。 所有技术都可以编译或转换为JavaScript,因此我们仅调整该文件的大小。

代码行-作者需要多少行代码才能基于规范创建RealWorld应用程序? 公平地讲,某些应用程序有很多麻烦,但应该不会产生重大影响。 我们量化的唯一文件夹是每个应用程序中的src /。 无论它是自动生成的,都没关系-您仍然需要对其进行维护。

指标1:性能

我们将检查Chrome随附的Lighthouse Audit的性能得分。 Lighthouse返回的性能得分在0到100之间。0是最低的得分。 有关更多详细信息,请参阅《灯塔计分指南》。

审核设置

2020年前端框架的比较

Lighthouse Audit Settings for all tested Apps

基本原理

绘画得越早,某人可以做某事的越早,使用该应用程序的人的体验就越好。

2020年前端框架的比较

Performance (points 0–100) — higher is better.

备注

注意:由于缺少演示应用程序,因此跳过了PureScript。

结论

Lighthouse Audit没睡。 您可以在今年看到未维护/未更新的应用程序跌破90悬崖。 如果您的应用程序得分> 90,则可能不会有很大的不同。 也就是说,AppRun,Elm和Svelte确实令人印象深刻。

指标2:大小

传输大小来自Chrome网络标签。 服务器提供的GZIPped响应标头以及响应正文。

这取决于框架的大小以及所添加的任何其他依赖项。 同样,构建构建工具可以很好地消除捆绑软件中未使用的代码。

基本原理

文件越小,下载速度越快,并且解析的次数也更少。

2020年前端框架的比较

Transfer size in KB — fewer is better

备注

由于缺少演示应用程序,因此跳过了PureScript。

Angular + ngrx + nx,请不要怪我Angular + ngrx + nx-检查Chrome开发工具网络标签,如果我算错了,请告诉我。

Rust + Yew + WebAssembly还包括.wasm文件

结论

Svelte和Stencil社区所做的惊人工作将其压缩到20KB以下,确实是一项成就。

 

指标3:代码行

使用cloc,我们可以计算每个存储库的src文件夹中的代码行数。 空白行和注释行不是此计算的一部分。 为什么这有意义?

如果调试是消除软件错误的过程,则编程必须是将其放入其中的过程— Edsger Dijkstra

基本原理

这说明给定库/框架/语言的简洁程度。 根据规范,您需要多少行代码才能实现几乎相同的应用程序(其中一些具有更多的功能)。

2020年前端框架的比较

lines of code — fewer is better

备注

由于cloc无法处理.svelte文件,因此Svelte被跳过。

由于cloc无法处理.riot文件,因此跳过了riotjs-effector-universal-hot。

Angular + ngrx:使用/ libs文件夹完成的LoC计算仅包括.ts和.html文件。 如果您认为这是错误的,请告诉我什么是正确的数字以及如何计算。

结论

只有具有重新构架的Imba和ClojureScript才能在1000LoC下实施该应用程序。 Clojure以异常表达而著称。 Imba第一次出现在这里(去年是cloc,不知道.imba文件格式),看起来好像会保留下来。 如果您关心自己的LoC,那么您就会知道该怎么做。

常问问题

#1为什么此比较中不包含框架X,Y和Z?

因为在RealWorld仓库中尚未完成实施。 考虑做出贡献! 在您喜欢的选择的库/框架中实施该解决方案,我们下次将包括它!

#2您为什么称其为现实世界?

因为它不只是一个待办事项应用程序。 在RealWorld中,我们并不是要比较薪水,维护,生产力,学习曲线等。还有其他一些调查可以回答其中的一些问题。 我们所说的RealWorld是一个连接到服务器,进行身份验证并允许用户CRUD的应用程序,就像真实世界中的应用程序一样。

#3您为什么不包括我最喜欢的框架?

请参见上面的#1,但以防万一,这里又来了:因为在RealWorld存储库中该实现尚未完成。 我并没有完成所有的实现-这是社区的努力。 如果您想在比较中看到您的框架,请考虑做出贡献。

#4您包括哪个版本的库/框架?

在撰写本文时(2020年3月)可用。 该信息来自RealWorld回购。 我确定您可以在GitHub存储库中找到此内容。

#5为什么您忘了包含一个比比较流行的框架?

同样,请参阅#1和#3。 在RealWorld存储库中,该实现尚未完成; 就这么简单。

如果您喜欢这篇文章,应该在Twitter上关注我。 我只写/推特有关编程和技术。

摘要

请记住,这并不是苹果之间的比较。 有些实现使用代码拆分,有些则没有。 其中有些托管在GitHub上,有些托管在Now上,有些托管在Netlify上。 您是否仍然想知道哪一个最好? 我把它留给你。

 

(本文翻译自Jacek Schae的文章《A RealWorld Comparison of Front-End Frameworks 2020》,参考:https://medium.com/dailyjs/a-realworld-comparison-of-front-end-frameworks-2020-4e50655fe4c1)



Tags:前端框架   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
CSS框架提供了设计一致解决方案的基本结构,以解决前端web开发中的常见问题。它们提供了通用功能,可以针对特定场景和应用程序进行覆盖。这大大减少了开始创建应用程序和网站所...【详细内容】
2021-12-06  Tags: 前端框架  点击:(15)  评论:(0)  加入收藏
《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个由百度开源的低代码前端框架——amis...【详细内容】
2021-11-05  Tags: 前端框架  点击:(68)  评论:(0)  加入收藏
每个前端开发人员都听说过三个用于构建 Web 应用程序的框架:React、Vue.js和Angular。React 是一个 UI 库,Angular 是一个成熟的前端框架,而 Vue.js 是一个渐进式框架。它们几...【详细内容】
2021-08-25  Tags: 前端框架  点击:(96)  评论:(0)  加入收藏
1、D2admin开源地址: https://github.com/d2-projects/d2-admin文档地址: https://d2.pub/zh/doc/d2-admin/效果预览: https://d2.pub/d2-admin/preview/#/index开源协议:MITima...【详细内容】
2021-07-13  Tags: 前端框架  点击:(128)  评论:(0)  加入收藏
业务背景目前团队内的开发模式多是面向组件的,UI层和逻辑层均强耦合在一起,由于业务的差异性,往往很难完全复用。 闲鱼前端业务处在高速发展不断尝试的阶段,如何能更快更稳定地...【详细内容】
2021-04-09  Tags: 前端框架  点击:(271)  评论:(0)  加入收藏
本文作者 : Stanley 罗昊本文转自: https://www.cnblogs.com/StanleyBlogs/p/14480990.html下载Layui与文件分析下载直接去官网下载即可 文件分析下载完成后,解压会得到一个文...【详细内容】
2021-03-09  Tags: 前端框架  点击:(220)  评论:(0)  加入收藏
尝试了很多不同的前端框架,最终我们选择Vuetify(https://vuetifyjs.com)前端框架。从Bootstrap开始,到iview,Buefy,elementUI,我们都是不断的尝试了多种不同的前端Vue框架,最终选择V...【详细内容】
2020-10-10  Tags: 前端框架  点击:(143)  评论:(0)  加入收藏
起初,按照惯例,先在Vue.js官网上看了相关文档介绍及基础使用。 接着在某站上看了某马实战教程,相关环境已准备好,开开心心的在cmd中输入 vue ui,直觉告诉我,事情没那么简单,果然后...【详细内容】
2020-07-14  Tags: 前端框架  点击:(94)  评论:(0)  加入收藏
ZUI一个基于 Bootstrap 深度定制开源前端实践方案,帮助你快速构建现代跨屏应用。Bootstrap是非常优秀的前端框架,但在构建大型应用的开发时通常远远不够。如果Bootstrap能够完...【详细内容】
2020-06-24  Tags: 前端框架  点击:(82)  评论:(0)  加入收藏
我们又来做这个对比了。这次是 2020 年的版本,还有之前的版本: 2019 年、 2018 年、 2017 年。先来明确一点——这篇文章绝对不是为了告诉你该选择哪个前端框架而...【详细内容】
2020-06-10  Tags: 前端框架  点击:(69)  评论:(0)  加入收藏
▌简易百科推荐
近日只是为了想尽办法为 Flask 实现 Swagger UI 文档功能,基本上要让 Flask 配合 Flasgger, 所以写了篇 Flask 应用集成 Swagger UI 。然而不断的 Google 过程中偶然间发现了...【详细内容】
2021-12-23  Python阿杰    Tags:FastAPI   点击:(6)  评论:(0)  加入收藏
文章目录1、Quartz1.1 引入依赖<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.2</version></dependency>...【详细内容】
2021-12-22  java老人头    Tags:框架   点击:(12)  评论:(0)  加入收藏
今天来梳理下 Spring 的整体脉络啦,为后面的文章做个铺垫~后面几篇文章应该会讲讲这些内容啦 Spring AOP 插件 (了好久都忘了 ) 分享下 4ye 在项目中利用 AOP + MybatisPlus 对...【详细内容】
2021-12-07  Java4ye    Tags:Spring   点击:(14)  评论:(0)  加入收藏
&emsp;前面通过入门案例介绍,我们发现在SpringSecurity中如果我们没有使用自定义的登录界面,那么SpringSecurity会给我们提供一个系统登录界面。但真实项目中我们一般都会使用...【详细内容】
2021-12-06  波哥带你学Java    Tags:SpringSecurity   点击:(18)  评论:(0)  加入收藏
React 简介 React 基本使用<div id="test"></div><script type="text/javascript" src="../js/react.development.js"></script><script type="text/javascript" src="../js...【详细内容】
2021-11-30  清闲的帆船先生    Tags:框架   点击:(19)  评论:(0)  加入收藏
流水线(Pipeline)是把一个重复的过程分解为若干个子过程,使每个子过程与其他子过程并行进行的技术。本文主要介绍了诞生于云原生时代的流水线框架 Argo。 什么是流水线?在计算机...【详细内容】
2021-11-30  叼着猫的鱼    Tags:框架   点击:(21)  评论:(0)  加入收藏
TKinterThinter 是标准的python包,你可以在linx,macos,windows上使用它,你不需要安装它,因为它是python自带的扩展包。 它采用TCL的控制接口,你可以非常方便地写出图形界面,如...【详细内容】
2021-11-30    梦回故里归来  Tags:框架   点击:(27)  评论:(0)  加入收藏
前言项目中的配置文件会有密码的存在,例如数据库的密码、邮箱的密码、FTP的密码等。配置的密码以明文的方式暴露,并不是一种安全的方式,特别是大型项目的生产环境中,因为配置文...【详细内容】
2021-11-17  充满元气的java爱好者  博客园  Tags:SpringBoot   点击:(25)  评论:(0)  加入收藏
一、搭建环境1、创建数据库表和表结构create table account(id INT identity(1,1) primary key,name varchar(20),[money] DECIMAL2、创建maven的工程SSM,在pom.xml文件引入...【详细内容】
2021-11-11  AT小白在线中  搜狐号  Tags:开发框架   点击:(29)  评论:(0)  加入收藏
SpringBoot开发的物联网通信平台系统项目功能模块 功能 说明 MQTT 1.SSL支持 2.集群化部署时暂不支持retain&will类型消 UDP ...【详细内容】
2021-11-05  小程序建站    Tags:SpringBoot   点击:(56)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条