Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Navigation APIと見るSvelteKitのWeb標準志向 / Navigation...
Search
Okuto Oyama
March 23, 2026
Technology
0
4
Navigation APIと見るSvelteKitのWeb標準志向 / Navigation API SvelteKit Web Standards
Svelte Japan Offline Meetup #7
登壇資料
Okuto Oyama
March 23, 2026
Tweet
Share
More Decks by Okuto Oyama
See All by Okuto Oyama
Shifting from MCP to Skills / ベストプラクティスの変遷を辿る
yamanoku
4
900
SchooでVue.js/Nuxtを技術選定している理由
yamanoku
4
8.5k
たかがボタン、されどボタン ~button要素から深ぼるボタンUIの定義について~ / BuriKaigi 2026
yamanoku
1
400
ひとりNavigation API Advent Calendarの紹介 / Mita.ts #9
yamanoku
1
150
DenoとJSRで実現する最速MCPサーバー開発記 / Building MCP Servers at Lightning Speed with Deno and JSR
yamanoku
2
600
転生したらTypeScriptのEnumだった件 ~型安全性とエコシステムの変化で挫けそうになっているんだが~ / TSKaigi 2025
yamanoku
0
60
React 18からのAPI useIDを使おう!/ Let's Use the useID API from React 18
yamanoku
0
150
リアクティブシステムの変遷から理解するalien-signals / Learning alien-signals from the evolution of reactive systems
yamanoku
3
2k
ブラウザ互換の重要性 - あらゆるユーザーに価値を届けるために必要なこと
yamanoku
0
370
Other Decks in Technology
See All in Technology
CyberAgentの生成AI戦略 〜変わるものと変わらないもの〜
katayan
0
280
Bill One 開発エンジニア 紹介資料
sansan33
PRO
5
18k
SRE NEXT 2026 CfP レビュアーが語る聞きたくなるプロポーザルとは?
yutakawasaki0911
1
470
欠陥分析(ODC分析)における生成AIの活用プロセスと実践事例 / 20260320 Suguru Ishii & Naoki Yamakoshi & Mayu Yoshizawa
shift_evolve
PRO
0
150
AI時代のSaaSとETL
shoe116
1
190
Claude Code 2026年 最新アップデート
oikon48
14
11k
会社紹介資料 / Sansan Company Profile
sansan33
PRO
16
410k
Everything Claude Code を眺める
oikon48
13
8.3k
20260311 技術SWG活動報告(デジタルアイデンティティ人材育成推進WG Ph2 活動報告会)
oidfj
0
370
AWSの資格って役に立つの?
tk3fftk
2
370
スケールアップ企業でQA組織が機能し続けるための組織設計と仕組み〜ボトムアップとトップダウンを両輪としたアプローチ〜
tarappo
1
210
「お金で解決」が全てではない!大規模WebアプリのCI高速化 #phperkaigi
stefafafan
4
1.7k
Featured
See All Featured
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
990
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.4k
We Have a Design System, Now What?
morganepeng
55
8k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
From π to Pie charts
rasagy
0
150
Deep Space Network (abreviated)
tonyrice
0
93
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
260
Building a Scalable Design System with Sketch
lauravandoore
463
34k
The Invisible Side of Design
smashingmag
302
51k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.1k
A designer walks into a library…
pauljervisheath
210
24k
Transcript
Svelte Japan Offline Meetup #7 2026/03/23 yamanoku Navigation APIと見る SvelteKitのWeb標準志向
yamanoku 一児の父・会社員 「お元気ですか.fm」パーソナリティ • My favorite things ◦ Web Standard
◦ アクセシビリティ ◦ 大型犬 ◦ 超かぐや姫! X (旧Twitter) | BlueSky | GitHub
SvelteKitのWeb標準志向
2025年のSvelteアドベントカレンダーに寄稿 https://zenn.dev/yamanoku/articles/svelte-advent-calender-2025
• React Router • Vue Router • SvelteKit • Astro
• FUNSTACK Router (uhyoさん作) ライブラリ・フレームワークの処理を調査
• 他のライブラリと違ってルーター用のコンポーネントがない • <Link>, <router-link>, <NuxtLink> などが存在しない • Web標準の<a>だけでルーティング処理を実現している より詳細な処理の内容はZenn記事を参照ください。
ちなみに、Astroも同様に<a>でルーティング処理を実現している。 SvelteKitでのSPA遷移を実現する要素
• 左クリック時やキー操作の場合は除外する • <a>での属性値やhrefでの値を元に処理の除外判定 • 同一ページにアンカーリンクがある場合のみスクロールさせる • すべてがページ遷移させる処理が発火する • 一部挙動はPage.jsを参考にしている
通常のリンク挙動を中断する処理
• Web標準志向なもので構築されていることを改めて知れた • Fetch APIs, FormData, Stream APIs, URL APIs,
Web Crypto… • 「車輪の再発明をするのではなくプラットフォームを扱う」 • Svelteでは新しいHTML要素のサポートも入っている SvelteKitのWeb標準志向
事例:Nuxtの場合における<a>と<NuxtLink>での扱い • <NuxtLink>にexternal propsを付与して外部リンクとして扱う • これは<a>でも同様に実現できるため判断に迷いがち SvelteKitでは<a>から書くことを起点にしているので迷わない。 実装の迷いを減らせることは有利
Conversely, time spent learning SvelteKit will help you be a
better web developer elsewhere. https://svelte.jp/docs/kit/web-standards
Navigation APIについて
• History APIに替わるページ遷移にまつわるWeb API • かつては「App History API」と呼ばれていた • Chrome
102よりフラグなしで使用可能(2022/5~) • Interop 2025にて対象に選出・標準化への取り組みが加速 Navigation APIとは何か
そもそもHistory APIでSPAを実装するには問題点が多かった • ユーザー操作でページの履歴が差し変わる • ブラウザによって一部動作の制約やバグがある • iframeがあることで履歴スタックを破壊してしまう 加えて、SPA特有のユーザー体験の問題もいくつか改善できないかも 検討されていた(スクロールの調整・アクセシビリティの問題)
なぜHistory APIに替わるものが出た?
History APIをハック的に扱わず、求めていた処理に近づく • 遷移処理をinterceptにて中断できるようになった • 履歴についても一意の状態を持てるようになった • SPAの画面遷移でスクリーンリーダーへの通知ができる • 画面遷移後のスクロールの位置調整がより容易になった
Navigation APIは何を解決してくれるの?
• ブラウザ制約の影響を受けずに実装できるようになった • これまでの処理自体をより軽量にできる ◦ ルーティングライブラリへの採用が期待できる これまでのルーティング処理も簡潔にできる
• TypeScript 6.0からWeb API等の型定義ファイルの見直し • その流れで型定義も最新の状態に追従している • Navigation APIは6.0より型が使用できるようになった ◦
5.9以前はDefinitelyTypedを使用しなければならなかった TypeScript 6.0から型が使用可能
• Navigation APIは2026年1月をもってBaseline Newly Availableへ • 最新のモダンブラウザであれば扱えるAPIになった • ただしSafari、Firefoxの2025年以前のブラウザでは使えない •
そのためプロダクションで使用するにしてもまだ Polyfillは必要 • Baseline Widely Availableとなるのは2028/07/13予定 じゃあNavigation APIは使ってもいい?
現時点では対応しないのをRich本人が明言している。 https://github.com/sveltejs/kit/issues/5277#issuecomment-4055076601 SvelteKitはNavigation APIに置き換えるか
🌶 IMHO 🌶
Navigation APIはHistory APIを代替しうる期待の存在。 ただ単体でこれが流行るかは正直怪しい。 • マイクロフロントエンドの共通ルーター部分 • 独自のクライアントサイドルーティングライブラリ それよりかは各ライブラリやフレームワークに 取り入れる方向が望ましいと考えている。
Navigation APIは流行るのか 🌶
再掲:Baseline Widely Availableになるのは2028/07/13 2年後まで待つのは遅すぎるのではないか? 【提案】実験的機能として提供していくのはどうだろうか • Angular 21.1からNavigation APIを実験的機能で扱える •
Vue Routerもモード切替できるように実装を進行中 安全に使えるまで待つのは遅い 🌶🌶
ここ数年フロントエンドはユーザー体験に関する新しい発明や どのようなものが良いかについて見かけなくなってきている。 Navigation APIやView TransitionsといったWeb APIや HTML・CSSの進化と共にMPA, SPAとは違った見せ方を考えたい。 Web標準志向のフレームワークだからこそ、 それが追求していけるのではないかと信じている。
単なるSPAからの脱却 🌶🌶🌶
• SvelteKitのSPAの仕組みはWeb標準技術を活用している • Navigation APIはSPAの挙動を改善しうるAPI • Navigation APIの本番投入が徐々に始まっている • SvelteKitは反映について静観の状態
• Web標準志向だからこそ導入して、より良い体験を考えたい まとめ
ひとりNavigation API Advent Calendar - yamaScrapbox