【Svelte】load 函数中如何获取 url 信息?
在 SvelteKit 的服务器端 load 函数中,可以通过函数的参数获取当前请求的 URL 信息。具体操作如下:
// src/routes/+page.server.js
import { redirect } from '@sveltejs/kit';export async function load({ locals, url }) {// 获取当前 URL 的完整路径(包含查询参数)const fullPath = url.pathname + url.search;// 仅获取路径部分(不包含查询参数和域名)const pathname = url.pathname;// 获取查询参数const searchParams = url.searchParams;// 示例:获取特定查询参数const exampleParam = url.searchParams.get('paramName');// 你的其他逻辑...return {// 返回需要传递的数据};
}
参数说明:
url
: 这是一个 URL 对象,包含当前请求的 URL 信息。url.pathname
: 路径部分(例如/products
)url.search
: 查询字符串(例如?id=123
)url.searchParams
: URLSearchParams 对象,用于操作查询参数
其他注意事项:
- 该方法适用于 +page.server.js、+layout.server.js 和 API 路由(+server.js)
- 在客户端加载函数(+page.js)中获取 URL 的方式不同,需使用
$app/stores
或page
store