相比Vue和React,Svelte可能更适合你

简介: 相比Vue和React,Svelte可能更适合你

什么是Svelte?


简介


Svelte 的作者 Rich Harris 将他的创作描述为“没有框架的框架”。


Svelte 基于用于在构建阶段编译组件的工具(本质上,Svelte.js 本身就是一个编译器),允许仅加载在页面上显示应用程序所需的内容——尽可能小的、“可消化的” JavaScript 代码。


这意味着没有虚拟 DOM,没有框架之上的框架,也没有运行时的框架。这是 Svelte 和 Vue 之间的主要区别,也是 Svelte 与 React 与 Angular 与 Vue 之战的主要争论点。


Svelte 是一个构建 web 应用程序的工具。

Svelte 与诸如 React 和 Vue 等 JavaScript 框架类似,都怀揣着一颗让构建交互式用户界面变得更容易的心。

但是有一个关键的区别:Svelte 在 构建/编译阶段 将你的应用程序转换为理想的 JavaScript 应用,而不是在 运行阶段 解释应用程序的代码。这意味着你不需要为框架所消耗的性能付出成本,并且在应用程序首次加载时没有额外损失。

你可以使用 Svelte 构建整个应用程序,也可以逐步将其融合到现有的代码中。你还可以将组件作为独立的包(package)交付到任何地方,并且不会有传统框架所带来的额外开销。


Svelte 的用例


在 Svelte.js 与 React 与 Vue 中,最关键的论点之一是使用。Svelte 最常见的用例包括:


  • 单页应用程序。
  • 适用于低功耗设备的应用程序。使用 Svelte 创建的应用程序代码更少,这实际上意味着要下载的数据更少,这对于低功耗设备来说是完美的。
  • 具有交互式可视化的应用程序。没有运行时的框架要方便得多,因为它可以让视觉效果更具响应性。


Svelte 的优点


随着语言的重大转变,在 Svelte.js 与 Vue 的战斗中,Svelte 看起来更有利,然而,在 React、Svelte 和 Vue 的比较中,它们都相对容易使用。你可以写在.html文件或.svelte文件中,在代码中也不需要使用 “this”。


但请注意:语法更简单,但需要注意这是一把双刃剑。


无需虚拟 DOM ,Svelte 的主要卖点以及 Svelte 和 Vue 之间的主要区别在于:减少了浏览器和应用程序之间的距离,从而使工作更加优化和快速。


根据测试,在 Svelte 与 React 与 Vue 的对决中,Svelte 比其他框架快约 30%。它还反映了 Svelte 与 Vue 的性能。

在声明变量的帮助下,Svelte 可以自动更新数据。这样,不必等待更改反映在您的虚拟结构中,从而获得更好的用户体验。



Svelte 的缺点


但是,Svelte 存在一些重大缺陷,可能会对开发人员的体验产生负面影响。


  • 没有更强大的的支持。虽然 Vue.js 和 Angular 得到了 Google 的支持,而 React 得到了 Facebook 的支持——这两个都是强大的 IT 巨头,但 Svelte 到目前为止还没有任何主要的支持。当然,这是一个非常年轻的框架,将来可能会得到支持,但如果你现在决定使用它,请做好准备。
  • 小社区。Svelte 现在不是很流行。例如像找UI库这样简单的事情可能会很耗时。并且在没有 UI Kits 的情况下使用 JS 比看起来要困难得多。
  • 路由问题。如果没有普通路由器,甚至无法创建单页 Web 应用程序。目前,Svelte 的选择并不多,主要是在两个选项之间进行选择,这两个选项都不好。可以链接您的路由器,但需要更多的时间和精力。
  • 还不支持跨平台应用程序。必须在 ReactNative 中完全重写移动应用程序或使用硬连线的 NativeScript,但要手动完成。



Svelte组件


在 Svelte 中,应用程序由一个或多个 组件(components) 构成。组件是一个可重用的、自包含的代码块,它将 HTML、CSS 和 JavaScript 代码封装在一起并写入 .svelte 后缀名的文件中。




我为什么选择Svelte?


趋势

首先我们来看一组数据:

6.png

这组数据来自:state-of-frontend

他们调查了3703名开发者,来自125个国家,19位专家。


数据表明有将近一半的开发者在将来想学习Svelte框架,大势所趋,那么肯定有其原因,所以我们需要学起来。



无DOM和语法,引人入胜


在某些场景下虚拟DOM固然快,但我很疑惑为什么会经常出现:“虚拟DOM比真实DOM快” 的一刀切言论,难道不看使用场景的吗?


Svelte 主要是一个编译器。它能够一步生成并同时优化代码,从而提高性能。这会降低运行时开销,并且用户可以享受平滑的过渡和异常快速的渲染。

另一个减少运行时间的独特来源是虚拟 DOM。由于不需要虚拟 DOM 优化和并发模块,性能得到了简化。Svelte 通过更改组件本身来负责在没有中间人(例如 API)的情况下更新 DOM。


其次我们来看一段代码

<script>
  let user = { loggedIn: false };
  function toggle() {
  user.loggedIn = !user.loggedIn;
  }
</script>
<button on:click={toggle}>
  Log out
</button>
<button on:click={toggle}>
  Log in
</button>

习惯了天花乱坠Hooks的之后,Svelte的语法震惊到我了,还能这么简洁?


需要提醒的是,Svelte 性能和语法固然出色,但并不是让你不加思索就跳船。



尝试


在使用Svelte的过程中发现,目前适配Svelte的UI框架确实少,所以我正在尝试将DouyinFE/semi-design中的Adapter部分实现于到Svelte框架中。欢迎star:svelte-semi-ui



目录
相关文章
|
23天前
|
XML JavaScript 前端开发
Vue和React有什么区别
【8月更文挑战第28天】Vue和React有什么区别
117 0
|
8天前
|
前端开发 JavaScript 开发者
Express.js与前端框架的集成:React、Vue和Angular的示例与技巧
本文介绍了如何将简洁灵活的Node.js后端框架Express.js与三大流行前端框架——React、Vue及Angular进行集成,以提升开发效率与代码可维护性。文中提供了详细的示例代码和实用技巧,展示了如何利用Express.js处理路由和静态文件服务,同时在React、Vue和Angular中构建用户界面,帮助开发者快速掌握前后端分离的开发方法,实现高效、灵活的Web应用构建。
29 3
|
7天前
|
JavaScript 前端开发 API
如何在前端开发中有效管理状态:React vs. Vue
在现代前端开发中,状态管理是一个关键因素,它直接影响到应用的性能和可维护性。React 和 Vue 是当前最流行的前端框架,它们在状态管理方面各有优势和劣势。本文将深入探讨 React 和 Vue 在状态管理中的不同实现,分析它们的优缺点,并提供实际应用中的最佳实践,以帮助开发者选择最适合他们项目的解决方案。
|
1月前
|
缓存 监控 前端开发
WEB前端三大主流框架:React、Vue与Angular
在Web前端开发中,React、Vue和Angular被誉为三大主流框架。它们各自具有独特的特点和优势,为开发者提供了丰富的工具和抽象,使得构建复杂的Web应用变得更加容易。
87 6
|
20天前
|
前端开发 Java Spring
Spring与Angular/React/Vue:当后端大佬遇上前端三杰,会擦出怎样的火花?一场技术的盛宴,你准备好了吗?
【8月更文挑战第31天】Spring框架与Angular、React、Vue等前端框架的集成是现代Web应用开发的核心。通过RESTful API、WebSocket及GraphQL等方式,Spring能与前端框架高效互动,提供快速且功能丰富的应用。RESTful API简单有效,适用于基本数据交互;WebSocket支持实时通信,适合聊天应用和数据监控;GraphQL则提供更精确的数据查询能力。开发者可根据需求选择合适的集成方式,提升用户体验和应用功能。
52 0
|
1月前
|
存储 JavaScript 前端开发
"探索Redux的Vuex化:如何在React世界中享受Vue状态管理的优雅与强大"
【8月更文挑战第21天】在现代前端开发中,状态管理至关重要。Vuex作为Vue.js的状态管理库,通过集中式存储和严格规则确保状态变更的追踪。Redux则以其在React生态中的可预测性和灵活性著称。两者都强调单一数据源、状态只读及使用纯函数变更状态。尽管API设计不同,理解Redux的核心概念——单一数据源(`store`)、状态只读与纯函数变更(`reducers`),并参考Vuex的`state`、`mutations`等,能帮助开发者快速掌握Redux,高效管理应用状态。
15 0
|
1月前
|
缓存 前端开发 JavaScript
前端框架选择指南:React vs Vue vs Angular
React、Vue与Angular是主流前端框架,各有千秋。React专注视图层,学习曲线平缓,生态丰富,适用于中大型项目;Vue简洁易学,模板直观,内置状态管理,适合中小项目及快速原型;Angular全栈框架,结构严谨,适合大型企业应用。React需手动处理状态管理,Vue提供完整CLI加速开发,Angular虽学习曲线陡峭但提供全套解决方案。性能方面,三者均利用虚拟DOM优化渲染。社区支持上,React最为庞大,Vue活跃度高,Angular有Google背书。选型应基于项目需求、团队技能及维护考量。
40 0
|
1月前
|
设计模式 JavaScript 前端开发
现代JavaScript框架比较:React、Vue和Angular
在现代Web开发中,JavaScript框架已成为开发高效、动态用户界面的关键工具。本文将深入比较三大主流框架:React、Vue和Angular。通过探讨它们的核心特性、优缺点和适用场景,帮助开发者根据项目需求选择最合适的框架。重点分析包括性能、学习曲线、社区支持和生态系统等方面,以便开发者能够做出明智的决策,优化开发流程并提升应用性能。
|
1月前
|
JavaScript 前端开发 API
浅谈:为啥 Vue 和 React 都选择了 Hooks?
浅谈:为啥 Vue 和 React 都选择了 Hooks?
|
2月前
|
JavaScript 前端开发 API
vue和react对比
【7月更文挑战第12天】 Vue和React是前端两大主流框架,各具特色。Vue以其简单API、双向绑定、模板语法和组件化开发吸引开发者,适合快速开发和新手。它的生态系统包括Vuex和Vue Router等。React以虚拟DOM、高性能、组件化和灵活性著称,大型项目和复杂应用常选React,且有庞大社区和丰富的第三方库。选择取决于项目需求、团队技能和未来扩展性。
44 3