配置基础路由步骤
- 安装依赖:确保项目中安装了
@builder.io/qwik-city
,这是Qwik City用于路由等功能的核心包。
- 创建路由文件:在项目的
src/routes
目录下创建路由文件。例如,创建index.tsx
文件代表根路由,其他文件如about.tsx
代表/about
路由等。每个路由文件导出一个组件,这个组件将作为该路由对应的页面展示内容。
- 设置布局:可以创建
layout.tsx
文件在src/routes
目录下,用于定义整个应用的布局结构,比如包含导航栏、页脚等通用部分。在布局组件中使用Outlet
组件来渲染子路由的内容。例如:
import { Outlet } from '@builder.io/qwik-city';
export default function Layout() {
return (
<div>
{/* 通用导航栏等 */}
<Outlet />
{/* 通用页脚等 */}
</div>
);
}
- 动态路由:如果需要创建动态路由,例如
/users/[id]
,可以创建users/[id].tsx
文件。在组件中通过useRouteParams
钩子获取动态参数,如:
import { useRouteParams } from '@builder.io/qwik-city';
export default function UserPage() {
const { id } = useRouteParams();
return <div>User {id}</div>;
}
对首屏加载速度产生积极影响的原因
- 代码拆分:Qwik的路由系统基于文件系统,每个路由文件对应一个独立的代码块。在SSR时,服务器可以只发送首屏所需的路由代码块,减少初始加载的代码量。例如,用户访问首页,服务器只需要发送
index.tsx
相关的代码及依赖,而不需要加载整个应用的代码,从而加快首屏渲染。
- 预渲染:Qwik City可以对路由页面进行预渲染。在构建阶段,服务器会生成静态HTML文件对应各个路由。当用户请求页面时,服务器直接返回预渲染好的HTML,浏览器可以快速展示页面内容,无需等待大量JavaScript执行后才渲染,提升首屏加载速度。
- 优化资源加载:合理的路由配置使得服务器可以更好地规划资源加载。比如在布局组件中,可以提前加载一些首屏所需的通用资源(如样式文件、字体等),并且通过路由配置确保这些资源在首屏渲染时能够及时可用,避免在首屏渲染过程中出现资源阻塞的情况。