Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions src/content/docs/zh-cn/reference/routing-reference.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,36 @@ const { post } = Astro.props;
<h1>{id}: {post.name}</h1>
```

### `routePattern`

<p>

**类型:** `string` <br />
<Since v="5.14.0" />
</p>

[`getStaticPaths()`](#getstaticpaths) 选项中的一个属性,用于以字符串形式访问当前 [`routePattern`](/zh-cn/reference/api-reference/#routepattern)。

该功能提供来自 [Astro 渲染上下文](/zh-cn/reference/api-reference/) 的数据,这些数据在 `getStaticPaths()` 作用域内通常无法获取,可用于计算每个页面路由的 `params` 和 `props`。

与反映页面显式值(例如 `/fr/fichiers/article-1/` )的 `params` 不同, `routePattern` 始终反映文件路径中的原始动态段定义(例如 `/[...locale]/[files]/[slug]` )。

以下示例展示了如何通过将 `routePattern` 传递给自定义 `getLocalizedData()` 辅助函数来本地化路由段并返回静态路径数组。[params](/zh-cn/reference/routing-reference/#params) 对象将为每个路由段(`locale`、`files` 和 `slug`)设置明确值,随后这些值将用于生成路由,并可通过 `Astro.params` 在页面模板中使用。

```astro title="src/pages/[...locale]/[files]/[slug].astro" "routePattern" "getLocalizedData"
---
import { getLocalizedData } from "../../../utils/i18n";
export async function getStaticPaths({ routePattern }) {
const response = await fetch('...');
const data = await response.json();
console.log(routePattern); // [...locale]/[files]/[slug]
// 结合 `routePattern` 调用你的自定义辅助函数以生成静态路径
return data.flatMap((file) => getLocalizedData(file, routePattern));
}
const { locale, files, slug } = Astro.params;
---
```

### `paginate()`

<p>
Expand Down