【问题标题】:sapper or svelte for new project?新项目的工兵还是苗条?
【发布时间】:2021-06-14 15:50:14
【问题描述】:

我看过并使用过 svelte 和 sapper,我想知道为什么要使用 svelte 模板而不是 sapper 模板创建一个新项目? 我相信 sapper 会在适当的时候被 sveltekit 取代,但它仍然是推荐的方法。

【问题讨论】:

  • Sapper 仅具有原生路由流。那么你的项目需要路线吗?如果是,则 sapper 已被弃用,但仍可正常工作,根据创建者 Rich Harris 的说法,过渡到 sveltekit 不会很困难。

标签: svelte sapper


【解决方案1】:

Svelte 和 Sapper 的相关性非常类似于 React 和 Next.js。 Sapper 提供了诸如服务器端渲染 (SSR)、routing(如果需要,可以轻松实现动态)和单页应用程序 (SPA) 支持等功能。创建路由就像将 .svelte(用于页面)或 .js(用于服务器路由)文件放到 routes 文件夹中一样简单。对于嵌套路由,您只需拖放一个包含 .js 文件的文件夹。

我认为您的问题的答案主要在于您的用例。如果您需要创建路由、想要 SSR 或 SPA,请使用 Sapper。但是,如果您不需要这些东西(或不知道),请从 Svelte 开始,因为在较小的项目上从 Svelte 迁移到 Sapper 就像复制几个文件一样简单。应该注意的是,正如@Madacol 在下面指出的那样,有一些差异(例如{#await})不能简单地移植过来,并且需要更重的提升。还有一些静态视线生成器(Routify、Elder.js 等),如果这更符合您的喜好的话。

关于 SvelteKit,正如 @johannchopin 所说:

根据创作者 Rich Harris 的说法,过渡到 sveltekit 并不难。

Rich 谈了一点SvelteKit on this podcast

更新(21 年 3 月 19 日):此时似乎有 docs that include a migration guide。不过需要注意的是,SvelteKit 1.0 还没有发布,所以这可能会有所改变。

【讨论】:

  • 从 Svelte 迁移到 Sapper 可能并不像看起来那么简单。我有一个 Svelte 项目,并迁移到 Sapper 因为我想实现 SSR,我从 API 中直接在脚本块中进行提取,然后使用 {# await ... } 块进行渲染。此模式与 sapper 不兼容,因为在 nodejs 中 fetch 不存在,您唯一的选择是在 onMount(无 SSR)或 sapper 的内置 preload 函数(SSR)中获取
  • 感谢您提醒我这一点。我的大部分经验是使用 Sapper,我经常忘记一些以这种方式出现的兼容性。我的原始帖子已经过编辑,以反映存在一些需要更多努力的差异。
猜你喜欢
  • 2021-03-12
  • 2020-05-05
  • 1970-01-01
  • 1970-01-01
  • 2020-03-05
  • 2021-11-12
  • 1970-01-01
  • 2011-02-19
  • 1970-01-01
相关资源
最近更新 更多