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標準志向
Search
yamanoku
March 23, 2026
Technology
230
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Navigation APIと見るSvelteKitのWeb標準志向
Svelte Japan Offline Meetup #7
登壇資料
yamanoku
March 23, 2026
More Decks by yamanoku
See All by yamanoku
SvelteのHTMLはどう解釈されているのか / How Svelte compile HTML
yamanoku
1
250
Shifting from MCP to Skills / ベストプラクティスの変遷を辿る
yamanoku
5
1.1k
SchooでVue.js/Nuxtを技術選定している理由
yamanoku
4
8.9k
たかがボタン、されどボタン ~button要素から深ぼるボタンUIの定義について~ / BuriKaigi 2026
yamanoku
1
550
ひとりNavigation API Advent Calendarの紹介 / Mita.ts #9
yamanoku
1
220
DenoとJSRで実現する最速MCPサーバー開発記 / Building MCP Servers at Lightning Speed with Deno and JSR
yamanoku
2
720
転生したらTypeScriptのEnumだった件 ~型安全性とエコシステムの変化で挫けそうになっているんだが~ / TSKaigi 2025
yamanoku
0
86
React 18からのAPI useIDを使おう!/ Let's Use the useID API from React 18
yamanoku
0
200
リアクティブシステムの変遷から理解するalien-signals / Learning alien-signals from the evolution of reactive systems
yamanoku
3
2.1k
Other Decks in Technology
See All in Technology
1.5時間を無駄にして学んだwsl2におけるaptとsnapの選択と仕組み
yosaka0123
0
480
Bet AI Day 2026丨Production-Ready AI Agents — エンタープライズの実務を任せるための設計と運用
layerx
PRO
1
250
パスキーでドライブする アカウント統合(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
430
みてねにおけるAI-DLC導入活動とAIドリブン開発の現在地/JAWS-UG AI-DLC #2
isaoshimizu
2
310
承認ゲートは何を守っているのか? AIエージェントの自律購入を実測した結果
yama3133
1
100
どんな手を使っても絶対間に合わせるスケジューラ
asari194617
0
1.5k
ブラウザで変わるID連携(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
430
Digitization部 紹介資料
sansan33
PRO
2
7.8k
[RSJ26] Flow as Flow: Modeling Robot Velocity Fields as Probability Velocity Fields
keio_smilab
PRO
0
160
Hub & Spoke 環境のネットワークルーティングを分解してみる
tsuyataku
1
480
MCPを待つな、パスキーを拡げよう(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
420
「ミスを許さない手順書」を作ってみた 〜 個人的にはこれ以上できることはあまりなさそう/20260827-ssmjp-operation-procedure-update
opelab
17
17k
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
510
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
460
Evolving SEO for Evolving Search Engines
ryanjones
0
270
How to build a perfect <img>
jonoalderson
1
5.9k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.5k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
230
Discover your Explorer Soul
emna__ayadi
2
1.3k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
680
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
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