从 __layout.svelte 访问当前页面名称

Dje*_*ent 5 svelte sveltekit

我在一个目录中有一堆路由,有一个公共__layout.svelte文件,假设有以下结构:

- src
  - routes
    - common
      - __layout.svelte
      - page_a.svelte
      - page_b.svelte
Run Code Online (Sandbox Code Playgroud)

我想知道__layout.svelte我当前所在页面的名称。例如,当我打开时,/common/page_a我想__layout显示page_a. 如果我有动态路由和文件[name].svelte,那么我可以name通过 访问值,这会很容易page.params.name,但由于这些是静态的,我不知道如何以解析 URL 之外的另一种方式可靠地访问它。

isa*_*ein 15

SvelteKit 提供了一个名为 的商店page,您可以将其导入为

import {page} from '$app/stores'
Run Code Online (Sandbox Code Playgroud)

因为它是一个商店,所以您可以像这样访问该值$page.url.pathname,并且它将是反应性的,如果您只想要 url 的最后一部分,您可以使用一些字符串方法来提取该特定的值。

像这样的东西会起作用

$page.url.pathname.substr($page.url.pathname.lastIndexOf('/'))
Run Code Online (Sandbox Code Playgroud)