Sapp 目前处于早期开发阶段,某些东西可能会在 1.0 版本前发生变化。本文档正在完善中。如果你卡在了某个地方,请大方地到官方 discord寻求帮助。
Sapper 是什么?
Sapper 是一款用于构建具有超强性能的 web 应用的框架。
它有两个基础概念:
- 应用的每个页面都是一个 Svelte 组件。
- 创建页面的方式是将文件放入项目的 src/routes 目录。它会进行服务端渲染,使得用户首次打开应用会非常的快,然后由客户端应用接管。
构建一个应用,使其包含全部现代最佳实践——代码拆分、离线支持、服务端渲染混合客户端渲染等,是非常复杂的。Sapper 帮助你解决这些无聊玩意,你只管实现自己的创意就行了。
阅读此手册你并不需要懂得如何使用 Svelte,但如果懂的话会更有帮助。简单说,Svelte 是一款 UI 框架,它能将你的组件高度优化为原生 JavaScript。阅读这篇介绍和入门教程了解更多。
为何名叫 Sapper?
在战争中,建造桥梁、修复道路、清扫雷区、布置炸药等等所有战斗条件的士兵,被称为工兵(sapper)。
对web开发人员来说,风险通常比战斗工程师低。但我们面对着那些充满敌意的环境:性能不足的设备,糟糕的网络接和前端工程中固有的复杂性。Sapper,是Svelte app maker (Svelte应用制作工具 )的简称,它是你勇敢而忠实的盟友。
对比 Next.js
Next.js 是 Zeit 出品的 React 框架,也是 Sapper 的灵感来源。
然而,两者之间存在着这些显著的区别:
- Sapper 由 Svelte 驱动,而非 React,所以它会更快,应用会更小。
- 替代 route masking ,我们用文件名来编码路由参数(查阅路由相关章节)
- 对于页面,可以在
src/routes
目录创建 服务器路由 。 这将使得某些事情变得更容易实现,例如,添加一个驱动特定页面的 JSON API (访问试试 )。 - 链接就是 标签,而非框架特定的 组件。这意味着,尽管是在 markdown 段落里,路由的行为也会如你期望那样,比如这个路由。
开始使用
创建 Sapper 应用的最简单方式是使用 degit 去克隆 sapper-template 仓库。
npx degit "sveltejs/sapper-template#rollup" my-app
# 或: npx degit "sveltejs/sapper-template#webpack" my-app
cd my-app
npm install
npm run dev
以上命令将在 my-app
目录为新项目搭建脚手架,安装它的相关依赖,并在 localhost:3000
开启服务。
试着编辑文件了解一切是如何工作的——你大可不必等到完整阅读本手册后再来尝试。