Qwik City
虽然 Qwik 专注于组件 API,但 Qwik City 包含了支持组件的常见服务器功能的 API:
- 路由: 使用基于目录的路由定义应用程序的路由。(支持 MPA 和 SPA 路由模型。)
- 页面: 渲染应用程序页面,是应用程序的主要功能。
- 布局: 定义可在页面之间重复使用的共享页面布局。
- 加载器: 在服务器上获取组件使用的数据。
- 动作: 提供组件请求服务器执行动作的方式。
- 验证器: 提供验证动作和加载器的方式。
- 端点: 定义用于 RESTful API、GraphQL API、JSON、XML 或反向代理的数据端点的方式。
- 中间件: 执行跨切面关注点(如身份验证、安全性、缓存、重定向和日志记录)的集中方式。
- server$: 在服务器上执行逻辑的简单方式。
- 缓存: 控制内容的缓存。
- 环境变量: 以平台无关的方式管理读取环境变量的 API,通常用于密钥。
- 同时支持服务器端渲染(SSR)用于完全动态站点以及静态站点生成(SSG)以在静态 Web 服务器和 CDN 上托管。
Qwik¹ City²
Qwik¹: 核心框架,稳定,基本组件模型。
City²: 基于文件的路由器、中间件、端点和数据获取和更新。
我们称之为 Qwik 的元框架。Qwik City 是 Qwik 的补充,就像 Next.js 对于 React,Nuxt 对于 Vue,SvelteKit 对于 Svelte,Analog 对于 Angular 一样。
Qwik(核心)和 Qwik City(路由)在两个抽象层面上解决问题。Qwik 专注于组件和状态管理基元,而 Qwik City 提供了一种基于观点和高性能的构建大规模站点的方式。我们不希望将生态系统锁定在单一正确的站点构建方式上,事实上,我们鼓励社区在 Qwik 之上构建替代解决方案。
虽然 Qwik City 充满了有用的功能,但由于 Qwik 的可恢复性和 JavaScript 流式处理,对于最终用户来说,使用 Qwik City 不会增加额外的成本。(零 JavaScript);
使用 Qwik City 构建电子商务网站、博客网站或任何其他需要路由、布局或数据检索/更新的网站。Qwik City 基于 Qwik 构建,因此 Qwik City 站点具有可恢复性,并且只下载最小量的 JavaScript,并进行细粒度的延迟加载。
高级 API 概述
以下表格显示了应该在哪个文件(index.tsx
vs layout.tsx
)中实现相应的功能。
Partytown
Qwik City 还预先集成了 Partytown,允许您在主线程之外执行第三方代码。