【JavaScript框架】2024年需要学习的顶级JavaScript框架:Blitz、SolidJS、Svelte等

news2024/11/27 18:40:04

Top JavaScript frameworks to learn in 2023: Blitz, SolidJS, Svelte, and more

如今,Web开发人员面临两大问题。

  • 第一个是如何自动化繁琐的web开发工作。要为标准web应用程序设置一个项目,您必须花费宝贵的时间学习用于常见任务的几个库,如身份验证和数据库处理,并将它们捆绑在一起。
  • 第二个问题是如何使网络应用程序更轻、更高性能。使用React等库构建的简单单页应用程序(SPA)在客户端处理大部分逻辑。在使用这些应用程序时,客户端必须预先加载大量JavaScript,这会导致页面加载时间过长,而用户从不喜欢页面加载时间较长。

在这篇综述中,我选择了七个即将出现的JavaScript框架,它们可以解决其中一个或两个重大问题。虽然有些只用于构建用户界面(UI),但另一些则是全栈的,可以为您提供web应用程序所需的一切。

我将介绍每个JavaScript框架带来的主要功能和创新,以及它们与React的对比,React是目前web应用程序中的首选框架。

Remix

Remix是在React之上构建的全栈web框架,由创建React Router的同一团队构建。

Remix使用服务器端渲染:文件在服务器上渲染,然后发送到客户端,而不是像Vanilla React那样在浏览器中渲染。正因为如此,浏览器不需要预先加载一个大的JavaScript文件(React经常发生这种情况),这减少了启动时间,并使页面对搜索引擎优化更友好。

与其他框架相比,它的主要优势之一是嵌套路由。组件会根据它们在服务器上的路径自动相互嵌套。若要加载或重新加载零部件,不需要重新加载其父零部件。此外,错误是有界的——如果错误发生在组件中,它不会影响其父组件。

如果你正在构建一个不需要很多客户端状态的应用程序,Remix可能是一个不错的选择,尽管由于最近被Shopify收购,它的未来还不确定。

单击Remix示例应用程序的链接。

Blitz

Blitz是在Next.js之上构建的全栈应用程序工具包。

Next.js是一个React框架,使开发人员能够构建服务器端的渲染和静态站点。Blitz采用了Next.js构建的基础,并为身份验证、用户和表单添加了方便的工具。有了这些额外的工具,您可以更轻松、更快地设置全栈应用程序。

作为一个工具包而不是一个完整的框架,Blitz比框架有着显著的优势。这是一个巨大的优势,因为Next.js是当前网络开发生态系统中最活跃的项目之一。

此外,虽然Blitz提供了一系列固执己见的选择,但它也具有高度的可定制性。如果你想快速为下一个项目设置Next.js应用程序,你应该试试Blitz。

单击闪电战示例应用程序的链接。

Qwik

Qwik是一个能够构建具有惊人启动性能的JavaScript应用程序的框架。

通常,如果您使用JavaScript进行服务器端渲染,则会向用户发送包含HTML和CSS的网站快照。但之后,您仍然需要“水合”它——将JavaScript附加到将处理用户事件的页面上。在接收快照和水合之间,用户无法与页面进行交互。

Qwik不是加载一束JavaScript,而是根据需要加载JavaScript。首先,它加载一个小的(1KB)JavaScript文件。然后,每次与页面交互时,这个小的JavaScript片段都会加载交互所需的JavaScript,仅此而已。

单击Qwik示例应用程序的链接。

RedwoodJS

RedwoodJS是一个固执己见的、全栈的React应用程序框架,与GraphQL、Prisma、Jest和Storybook集成,可实现最高生产力和快速的项目设置时间。

如果你正在为你的启动或附带项目构建一个网络应用程序,RedwoodJS会为你提供帮助。你不必花很多时间建立图书馆或学习图书馆。基本上,你可以构建一个应用程序并开始开发你的项目。

但它也带来了固执己见的框架的所有缺点。如果你想使用不同于框架提出的工具,那么节省时间的元素就会消失。因此,它更适合React初学者或希望选择标准工具的开发人员。

单击RedwoodJS示例应用程序的链接。

Svelte

Svelte是一个独特的项目:它更像是一个编译器,而不是一个框架。Svelte没有在浏览器中发送和执行大量代码,而是将代码编译为纯JavaScript。这使得捆绑包更小,执行速度更快。客户端在其他框架中完成的许多工作都是在编译期间完成的。

这使Svelte能够删除虚拟文档对象模型,也称为虚拟DOM,它是浏览器内存中UI的虚拟表示。

对于常规框架,当发生更改时,更新虚拟DOM比更新真实DOM更快。然后,通过将真实DOM与虚拟DOM进行比较,可以频繁地更新真实DOM。Svelte减少了虚拟DOM的开销,而是将代码编译为JavaScript,可以对真实DOM进行快速、有针对性的更新。

用户还报告称,Svelte提供了出色的开发体验。它是2022年Stack Overflow调查中第二受欢迎的框架。因此,如果你正在寻找一种已经被广泛认可的React替代品来构建UI,这应该是你的选择。

单击Svelte示例应用程序的链接。

SolidJS

SolidJS是一个前端框架,它比React本身更具反应性。它的主要技术是注意变量和UI之间的关系,这些关系会随着时间的推移而持续存在。在SolidJS中,称为信号的特殊变量知道哪些函数使用它们。当它们的值更改时,会导致效果(函数)重新运行。该系统的功能与React挂钩类似。

与Svelte一样,SolidJS不使用虚拟DOM。相反,模板被编译为真正的DOM。由于代码中记录了信号和效果之间的关系,因此每当信号发生变化时,只有受影响的部分才会更新。

如果你想要一个比React更快、更容易使用的UI框架,你应该试试SolidJS。

单击SolidJS示例应用程序的链接。

Vue 3

Vue是一个与React非常相似的前端框架。请注意,它不像我们列表中以前的条目那样是最近的突破工具,因为它与React和Angular大约同时出现。虽然Vue的指导思想类似,但与刚才提到的两个框架不同,它不是由Facebook或谷歌这样的企业集团运营的。

与React类似,您通常会使用Vue构建接口和SPAs。但如果你想要一个全栈框架,它确实支持使用Nuxt的服务器端渲染的全栈应用程序。

Vue拥有丰富的库和教程生态系统。此外,它已经成熟,并在许多web应用程序项目中证明了自己。简言之,对于任何不想在技术选择上冒险的项目来说,这都是一个很好的选择。

单击Vue示例应用程序的链接。

JavaScript框架的比较

总之,这里有一个表,比较了我讨论过的不同JavaScript框架:

框架主要优点前端还是全栈?基于 React?

在GitHub上首次发布

Remix语义代码分组Full-stackSeptember 2021
Blitz快速应用设置Full-stackApril 2020
Qwik页面加载时间低Full-stackJuly 2021
RedwoodJS快速应用设置Full-stackJune 2019
SvelteFast appsFrontendNovember 2016
SolidJSReactivityFrontendMarch 2019
VueMaturityFrontendDecember 2013

结论

本文涵盖了2023年要考虑的七个有前景的JavaScript框架。一些提供了速度和更好的页面加载时间等性能优势,而另一些则通过包括用于身份验证和处理数据库等常见任务的附加工具来改善应用程序设置体验。

如果您正在试用这些JavaScript框架中的任何一个,并且需要一个数据网格组件,请查看Handontable。它可以与主要的框架配合使用,因此您可以将它与您尝试的任何web框架集成。

文章链接

【JavaScript框架】2023年需要学习的顶级JavaScript框架:Blitz、SolidJS、Svelte等 | 程序

欢迎收藏【架构师酒馆】和【开发者开聊】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1259503.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

knife4j集合化postman

knife4j集合化postman 01 knife4j的介绍 基于 JavaMVC的集成框架swagger的进一步强化,在原有通过注释就能生成文档的前身swagger-bootstrap-ui之上,增加了postman的测试功能,优化了文档的UI界面,在测试api接口的方面有了极大的进…

C语言错误处理之<errno.h>与<error.h>

目录 前言 错误号处理方式 errno.h头文件 常见的宏 error.h头文件 参数解释: 关于的”__attribute__“解释: 关于“属性”的解释: 实例一: 实例二: error.h与errno.h的区别 补充内容: 前言 …

TUP通信——与多个客户端同时通信

一,概括:可以通过多线程思想每加一个客户端由线程池中的主线程交给一个子线程管理 二,案例 (1),线程池 (2),服务端 (3),客户端

RPG项目01_UI登录

首先创建一个项目 将资源包导进Resources文件夹 创建一个Scripts脚本文件夹 然后再对Scripts脚本文件夹分门别类 导入UI资源包 创建一个Image 按住Alt 选择右下角 image就会覆盖整个面板 修改image名字为BG 将image图片放置背景栏 再创建一个image 改名为MainMenu 修改MainMenu…

FLV 文件格式分析

前言 flv 是 flash video 的缩写,是 Adobe Flash payler 支持的一种流媒体播放格式。flv 是一种层级格式,除了一个 flv header 外,剩下全是由 一个个 tag 组成。tag 是由 tag 头和 tag 数据组成。tag 类型分为音频、视频、脚本,一…

centos7 keepalived 探测当前节点

前提 nginx 默认页面内容中需要加上各节点的ip nginx web页面修改 nginx配置文件路径:/etc/nginx/nginx.conf,该配置文件引用了/etc/nginx/conf.d/default.conf 打开/etc/nginx/conf.d/default.conf配置文件可以看到html页面的路径 /usr/share/nginx…

分享从零开始学习网络设备配置--任务4.3 使用动态路由RIPng实现网络连通

任务描述 某公司使用IPv6技术搭建企业网络,由于静态路由需要管理员手工配置,在网络拓扑发生变化时,也不会自动生成新的路由,因此采用IPv6动态路由协议RIPng实现网络连通,实现任意两个节点之间的通信,并降低…

【UE】切割程序化网格体

效果 步骤 1. 新建一个Actor蓝图,这里命名为“BP_程序化网格体” 打开“BP_程序化网格体”,添加一个静态网格体组件,再添加一个程序化网格体组件 选中程序化网格体组件,取消勾选“将复杂性用作简单碰撞”选项 选中静态网格体组件…

详解Java中的泛型(泛型的语法,擦除机制,泛型的上界)

目录 一.什么是泛型 二.Java中为什么要使用泛型 三.泛型的语法 四.泛型类的使用 五.泛型的编译机制(擦除机制) 六.泛型的上界 一.什么是泛型 泛型(Generics)是Java SE 5中引入的一个新特性,可以使Java中的类和方…

这些steam游戏搬砖知识,你不会还不知道吧?

CSGO搬砖日常出货更新 大家好,我是阿阳,一个只讲项目实操干货的创业博主。今天的内容主要是针对准备踏入游戏行业的新人来讲的: 1、首先大家一定要弄清游戏搬砖到底是哪一个游戏搬砖,因为市面上有个叫游戏打金的很多人也习惯把他…

Liunx系统使用超详细(二)

本篇内容是总结罗列Liunx系统日常使用的基础操作!!! 目录 一、查看IP地址 1.1使用 ip 命令 1.2使用 ifconfig 命令 1.3使用hostname命令(仅显示主机名) 1.4使用curl命令获取公共IP地址 二、重启网卡(网络接口) …

实在智能荣获36氪消费新势力榜单“优选品牌服务商”

近日,36氪未来消费正式公布「FUTURE 2023」消费新势力名单,实在智能凭借专业的数字化产品力、卓越的服务力和深远的行业影响力,成功入选榜单并获评“优选品牌服务商”。 据悉,此次名单是由36氪未来消费特邀消费领域的行业专家、投…

开源运维监控系统-Nightingale(-夜莺)应用实践(未完)

一、前言 某业务系统因OS改造,原先的Zabbix监控系统推倒后未重建,本来计划用外部企业内其他监控系统接入,后又通知需要自建才能对接,考虑之前zabbix的一些不便,本次计划采用一个类Prometheus的监控系统,镜调研后发现Nightingale兼容Prometheus,又有一些其他功能增强,又…

【微服务】java 规则引擎使用详解

目录 一、什么是规则引擎 1.1 规则引擎概述 1.2 规则引擎执行过程 二、为什么要使用规则引擎 2.1 使用规则引擎的好处 2.1.1 易于维护和更新 2.1.2 增强应用程序的准确性和效率 2.1.3 加快应用程序的开发和部署 2.1.4 支持可视化和可管理性 2.2 规则引擎使用场景 三、…

Python实现FA萤火虫优化算法优化循环神经网络分类模型(LSTM分类算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 萤火虫算法(Fire-fly algorithm,FA)由剑桥大学Yang于2009年提出 , …

CNN对 MNIST 数据库中的图像进行分类

加载 MNIST 数据库 MNIST 是机器学习领域最著名的数据集之一。 它有 70,000 张手写数字图像 - 下载非常简单 - 图像尺寸为 28x28 - 灰度图 from keras.datasets import mnist# 使用 Keras 导入MNIST 数据库 (X_train, y_train), (X_test, y_test) mnist.load_data()print(&…

防火墙简介

防火墙概念 是指一种将内部网和公众访问网(如Internet)分开的方法,它实际上是一种建立在现代通信网络技术和信息安全技术基础上的应用性安全技术,隔离技术。 将需要保护的网络和不可信网络进行隔离,隐藏信息并…

【华为OD】统一考试B\C卷真题 100%通过:开源项目热榜 C/C++实现

目录 题目描述: 示例1 示例2 题目描述: 某个开源社区希望将最近热度比较高的开源项目出一个榜单,推荐给社区里面的开发者。对于每个开源项目,开发者可以进行关注(watch)、收藏(star)、fork、提issue、提交合并请求(MR)等。 数…

振南技术干货集:znFAT 硬刚日本的 FATFS 历险记(2)

注解目录 1、znFAT 的起源 1.1 源于论坛 (那是一个论坛文化兴盛的年代。网友 DIY SDMP3 播放器激起了我的兴趣。) 1.2 硬盘 MP3 推了我一把 (“坤哥”的硬盘 MP3 播放器,让我深陷 FAT 文件系统不能自拔。) 1.3 我…