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

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.mfbz.cn/a/193661.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据增强让模型更健壮

在做一些图像分类训练任务时,我们经常会遇到一个很尴尬的情况,那就是: 明明训练数据集中有很多可爱猫咪的照片,但是当我们给训练好的模型输入一张戴着头盔的猫咪进行测试时,模型就不认识了,或者说识别精度很低。 很明显,模型的泛化能力太差,难道戴着头盔的猫咪就不是猫…

MATLAB的rvctools工具箱熟悉运动学【机械臂机器人示例】

1、rvctools下载安装 rvctools下载地址:rvctools下载 截图如下,点击红色箭头指示的“Download Shared Folder” 即可下载 下载之后进行解压,解压到D:\MATLAB\toolbox这个工具箱目录,这个安装路径根据自己的情况来选择&#xff0c…

案例030:基于微信小程序的英语学习交流平台

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

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

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

SpringBoot : ch07 整合websocket

前言 当涉及到在Spring Boot应用程序中整合WebSocket时,我们可以使用Spring框架提供的功能来实现实时双向通信。WebSocket是一种在Web浏览器和服务器之间进行全双工通信的协议,它允许服务器主动向客户端发送消息,而不需要客户端发起请求。 …

23种经典设计模式:单例模式篇(C++)

前言: 博主将从此篇单例模式开始逐一分享23种经典设计模式,并结合C为大家展示实际应用。内容将持续更新,希望大家持续关注与支持。 什么是单例模式? 单例模式是设计模式的一种(属于创建型模式 (Creational Pa…

多功能智慧路灯系统整体解决方案介绍

在不改变现有城市景观的前提下,利用现有路灯改造,或新建多功能叁仟智慧路灯的方法,可实现城市无线网络、视频监控、物联传感网络、新能源充电系统、网格信息化管理的全覆盖,有效解决信息化设备选址难、取电难等问题。在目前无线通…

87基于matlab的双卡尔曼滤波算法

基于matlab的双卡尔曼滤波算法。第一步使用了卡尔曼滤波算法,用电池电压来修正SOC,然后将修正后的SOC作为第二个卡尔曼滤波算法的输入,对安时积分法得到的SOC进行修正,最终得到双卡尔曼滤波算法SOC估计值。结合EKF算法和安时积分法…

pytorch实现遥感建筑物提取

如何自动地从高分辨率遥感影像中提取建筑物等人工目标是高分辨率遥感影像处理与理解领域的一个热点与难点问题。本篇文章我们将学习如何使用pytorch实现遥感建筑物的智能提取。 智能提取的流程 基于深度学习的遥感建筑物智能提取,首先需要制作数据集,然后…

【Java数据结构 -- 包装类和泛型】

包装类和泛型 1. 包装类1.1 基本数据类型和对应的包装类1.2 装箱和拆箱1.3 自动装箱和自动拆箱1.4 自动装箱实际上是调用了valueOf()1.5 Integer包装类赋值注意点 2 什么是泛型3 引出泛型4 泛型的使用4.1 语法4.2 类型推导 5 裸类型6 泛型如何编译6.1 擦…

C++-继承

一. 继承的概念及定义 1 . 继承的概念 继承(inheritance) 机制是面向对象程序设计 使代码可以复用 的最重要的手段,它允许程序员在 保 持原有类特性的基础上进行扩展 ,增加功能,这样产生新的类,称派生类。继承 呈现了面向对象 程…

亚马逊、eBay店铺如何提升销量转化?掌握测评自养号的技巧

跨境电商随着互联网和物流技术的迅速发展,消费者可以更轻松地借助跨境电商平台在全球范围内进行购物,而提到跨境电商,亚马逊平台是不可忽视。 在竞争激烈的亚马逊市场中,提升销量转化率是每个卖家都追求的目标,高转化…

企业被列入经营异常会有什么后果?

1、工商方面的不良影响 被工商纳入异常吊销营业执照:公司地址异常将会被工商部门纳入经营异常名录,需要及时申请移出,否则会影响正常经营,严重则有被吊销营业执照的风险。 影响企业形象及信誉度:企业间的合作都非常重视…

git报错:error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413

git报错:error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413 如图: error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413 send-pack: unexpected disconnect while reading sideband packet fatal: th…

【C语言】【选择排序及其优化】

选择排序是指:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾&#xff0…

代码随想录算法训练营第六十天|84. 柱状图中最大的矩形

LeetCode 84. 柱状图中最大的矩形 题目链接:84. 柱状图中最大的矩形 - 力扣(LeetCode) 和接雨水还挺像的。 代码: #python class Solution:def largestRectangleArea(self, heights: List[int]) -> int:heights.insert(0, 0…

Intel Software Guard Extensions简介

文章目录 前言一、新的基于硬件的控件实现数据安全二、机密计算的挑战三、用于机密计算的增强安全功能四、Enclave验证和数据密封五、数据中心认证参考资料 前言 最近开始研究Intel SGX硬件特性,记录下研究过程。 参考文档:product-brief-SGX 一、新的…

python实现自动刷平台学时

背景 前一阵子有个朋友让我帮给小忙,因为他每学期都要看视频刷学时,一门平均需要刷500分钟,一学期有3-4门需要刷的。 如果是手动刷的话,比较麻烦,能否帮他做成自动化的。搞成功的话请我吃饭。为了这顿饭,咱…

Redis的五大数据类型详细用法

我们说 Redis 相对于 Memcache 等其他的缓存产品,有一个比较明显的优势就是 Redis 不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。本篇博客我们就将介绍这些数据类型的详细使用…

Javaweb之Vue组件库Element之Dialog对话框的详细解析

4.3.3 Dialog对话框 4.3.3.1 组件演示 Dialog: 在保留当前页面状态的情况下,告知用户并承载相关操作。其企业开发应用场景示例如下图所示 首先我们需要在ElementUI官方找到Dialog组件,如下图所示: 然后复制如下代码到我们的组件文件的templ…
最新文章