由于多种原因,我\xe2\x80\x99m 正在重建一个新项目。目前该项目使用 Marko。\n我\xe2\x80\x99m 调查\xe2\x80\x99 是否值得转向精简。\n我实际上没有\xe2\x80\x99t 发现它们之间有很大差异。\n其中之一是吗相对于对方有优势吗?为什么 Svelte 受到如此大的关注?
\nPee*_*ers 19
在我看来,Svelte 的受欢迎基于以下事实:
\n我什至可以说,Svelte 感觉更像是浏览器平台的自然扩展,而三大巨头则倾向于做“自己的事情”(Angular 是一个“固执己见”的框架,React 痴迷fn(state) => view,Vue 介于两者之间)。 \nSvelte 中的代码节省(以及“客户端电池友好性”)很大程度上是由于它不使用像 React 和 Vue 这样的 VDOM,这意味着下载的代码更少,消耗的 CPU 周期也更少。此外,Svelte 使用编译器来生成代码,因此它只包含实际需要的内容 - 甚至在捆绑器的 tree-shaking 开始执行其操作之前也是如此。Svelte 使用反应式更新模型(实际上有两个系统:反应式分配和存储)
Svelte 的缺点是,与三巨头中的任何一个相比,目前它的生态系统要小得多 - 但这是可以预料的,因为它是一个年轻得多的工具。
\nRich Harris 就 Svelte 进行了一些精彩的演讲:
\n另请参阅MDN:Svelte 入门
\n然而,就像 React 和 Vue 一样,Svelte 的核心设计基于CSR - 客户端渲染。因此,虽然它们都有 SSR 解决方案(Next.js - React、Nuxt.js - Vue、SvelteKit - 以前的 Sapper),但这些解决方案往往会引入一些意外的复杂性,因为 SSR 不是初始设计的一部分。
\n这就是Marko的不同之处。它最初是一个基于服务器的解决方案,具有基于客户端的方面。早在 2017 年,基于客户端的方面就是基于 VDOM 的。Marko 的优点之一是它开箱即用地支持异步片段(来自服务器的 HTML 流)。现在,Marko 计划放弃 VDOM,并用细粒度反应性取代它,以减少交付代码的大小并提高低端客户端设备的性能。Solid JS的 Ryan Carniato于 2020 年 7 月加入Marko 团队来实现这一目标。
\n从这个意义上说,Marko 是独一无二的,因为它实现了一种尝试以集成方式利用任何 Web 应用程序中涉及的双方(服务器和客户端)的优势的方法。因此,它似乎非常适合岛屿架构,需要在 Svelte 中做更多工作(Elder.js及其背景故事)。
\n\n就口号而言:Marko 是 HTML 的重新构想,而 Svelte使用的是 HTML 的超集。
\n| 归档时间: |
|
| 查看次数: |
2435 次 |
| 最近记录: |