3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

備忘録:SvelteKitで今いるURLを取得する

Last updated at Posted at 2023-04-30

公式ドキュメント

SvelteKitではモジュール(Modules)と呼ばれている機能で、いろいろな便利情報が取得できて、$app/storesのpageを使うとURL周りの情報が取得できる。

結論

<script lang="ts">
	import { page } from '$app/stores';
</script>
あなたはいまここにますよ:{$page.url.href}

こんな感じ。

公式ドキュメントに書かれている通り、サブスクライブしないといけないので importはpageだけど使う時は$pageです。

他にも、公式ドキュメントのpage型情報のところに一部書いていますが、

変数
$page.params.id c1f0fe78-0dee-45a0-a2b3-4caaf7b0b6eb
$page.route.id /works/programming/[id]
$page.url.href http://localhost:5173/works/programming/c1f0fe78-0dee-45a0-a2b3-4caaf7b0b6eb
$page.url.origin http://localhost:5173
$page.url.host localhost:5173
$page.url.hostname localhost
$page.url.port 5173
$page.url.pathname /works/programming/c1f0fe78-0dee-45a0-a2b3-4caaf7b0b6eb

みたいな感じで取れます。

おまけ

ちなみに$pageを覗いてみると

{
  error: null,
  params: { id: 'c1f0fe78-0dee-45a0-a2b3-4caaf7b0b6eb' },
  route: { id: '/works/programming/[id]' },
  status: 200,
  url: URL {
    href: 'http://localhost:5173/works/programming/c1f0fe78-0dee-45a0-a2b3-4caaf7b0b6eb',
    origin: 'http://localhost:5173',
    protocol: 'http:',
    username: '',
    password: '',
    host: 'localhost:5173',
    hostname: 'localhost',
    port: '5173',
    pathname: '/works/programming/c1f0fe78-0dee-45a0-a2b3-4caaf7b0b6eb',
    search: '',
    searchParams: URLSearchParams {},
    hash: ''
  },
  data: {
    //略
  },
  form: null
}

こんな感じ。

routeではディレクトリの構造がそのまま出てくるので、例えば(guest)みたいなgroupディレクトリ分けしているとそのディレクトリ名もそのまま出てくる。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?