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,允许您在主线程之外执行第三方代码。

Contributors

Thanks to all the contributors who have helped make this documentation better!

  • manucorporat
  • strogonoff
  • youngboy
  • farukEncoded
  • brunocrosier
  • forresst
  • mhevery
  • adamdbradley