Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ひとりNavigation API Advent Calendarの紹介 / Mita.ts #9
Search
yamanoku
December 17, 2025
Technology
230
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ひとりNavigation API Advent Calendarの紹介 / Mita.ts #9
Mita.ts #9
の発表資料
ひとりNavigation API - Qiita Advent Calendar 2025
yamanoku
December 17, 2025
More Decks by yamanoku
See All by yamanoku
大型犬好きによるPugの紹介
yamanoku
0
83
SvelteのHTMLはどう解釈されているのか / How Svelte compile HTML
yamanoku
1
330
Navigation APIと見るSvelteKitのWeb標準志向
yamanoku
2
280
Shifting from MCP to Skills / ベストプラクティスの変遷を辿る
yamanoku
5
1.2k
SchooでVue.js/Nuxtを技術選定している理由
yamanoku
4
9k
たかがボタン、されどボタン ~button要素から深ぼるボタンUIの定義について~ / BuriKaigi 2026
yamanoku
1
570
DenoとJSRで実現する最速MCPサーバー開発記 / Building MCP Servers at Lightning Speed with Deno and JSR
yamanoku
2
750
転生したらTypeScriptのEnumだった件 ~型安全性とエコシステムの変化で挫けそうになっているんだが~ / TSKaigi 2025
yamanoku
0
89
React 18からのAPI useIDを使おう!/ Let's Use the useID API from React 18
yamanoku
0
220
Other Decks in Technology
See All in Technology
実践! SRE × AI - ABEMA における AIOps -
tetsuya28
7
2.6k
"優秀な誰か"の下位互換にならないために
yut0naga1_fa
0
1.1k
SREでアラート疲れを 解決しよう!
kairim0
1
220
ファミコンでPHPを動かす / PHP on the Famicom side b
tomzoh
0
140
「Docker Desktop不要の時代」は 来たのか?
ueponx
0
390
TinyGoでオブザーバビリティ?OpenTelemetryはTinyGoで使えるのか / Is OpenTelemetry available in TinyGo environment?
ymotongpoo
2
130
オンラインゲームのシステム全体像 - コロプラ 2026年度 新卒研修
colopl
0
1k
スキルを作る、その前に!複数人で使われるスキルを 作るためのプロセス
junkifurukawa
2
370
OR学会2026年秋期大会_機械学習と数理最適化の融合による、配合レシピ最適化システム開発事例
brainpadpr
0
110
FactoryBotアンチパターン / factory_bot anti-patterns
toshimaru
0
140
メルペイ 会計システム概要と歴史
mewuto
0
200
契約書画像からの情報抽出に特化した視覚接地モデルを育てる話
sansantech
PRO
1
160
Featured
See All Featured
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
450
Paper Plane
katiecoart
PRO
4
54k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
370
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
2
350
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
320
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
530
Transcript
ひとり Navigation API Advent Calendar
2025年
まもなく 終わりますね
今年は 何があったかな
フロントエンド エコシステムを 見渡してみる
• React Compiler v1リリース • Nuxt v4リリース • RemixのWeb標準による新アーキテクチャ •
Vitest Browser Mode安定化 • Biome v2リリース • Base UI v1リリース、shadcn/uiへの登用 • TypeScript Goでのネイティブ実装 • Vite +(plus) 発表 • npmリポジトリへのサプライチェーン攻撃 • React2Shell 等
私が注目した 2025年の出来事
Interop 2025
Interop?
Web APIの クロスブラウザ 相互運用性を 高めるプロジェクト
• CSS Anchor positioning • backdrop-filter • Core Web Vitals
• <details> element • Layout • JavaScript Modules • Navigation API • Pointer and Mouse events • @scope • scrollend event • Storage Access API • text-decoration • URLPattern • View Transition API • WebAssembly • Web Compat • WebRTC • Writing modes • Mutation Event 削除
私が 注目している Web API
Navigation API
これは何が できるの?
SPAの ユーザー体験を 向上させる Web API
もう少し 具体的に言うと
SPA開発に必要な History APIを 使いやすくしたもの
そもそも History APIって?
ブラウザの 閲覧履歴を 制御するもの
history.forward()
history.back()
history.go()
history.pushState() history.replaceState()
scrollRestoration
History APIは SPAのどの部分で 活用されてる?
クライアント ルーティング
History APIは SPAの構築に 必要なWeb API
しかしながら
History API には 問題があります
履歴を残すのが 難しい
履歴はふとした リンク操作で 書き換わってしまう
Safari iOSでの pushStateの 回数制限
30秒間に100回の pushState呼び出しで SecurityError
遷移処理を止めると 履歴が差し変わる ことがある
履歴を復元する 処理を作らないと いけない
アクセシビリティ観点
手続き的な フォーカス管理が やりづらい
たいへん
そこで登場
Navigation API
履歴の管理を 永続的なものに
遷移途中に 割り込み処理を 入れられるように
フォーカス管理も しやすくなった
いいね
ところで
None
型情報は?
TypeScript 3.9では 一部型情報が 使えます
2つ以上の ブラウザエンジンが 対応したら 正式に反映される
Chrome 102 Release date 2022-05-24 Edge 102 Release date 2022-05-31
Safari 26.2 Release date 2025-12-12 Firefox 147 Release date 2026-01-13
来年には 全ブラウザで 安定して使える (予定)
つまり
2026年は Navigation API 元年
使うなら ちゃんと 理解したい
予習しておこう
そういえば
今って 12月ですね
12月といえば
Advent Calendar
というわけで
ひとりNavigation API Advent Calendarをやっています!
• Navigation APIとは何? • 一次情報源まとめ ◦ Navigation API、History API ◦
ルーティングライブラリ集 • History APIの問題点 • Navigation APIインターフェイス、メソッドを見る • interceptとは何? • クライアントサイドルーティングを実装してみる • React Router、Vue RouterのHistory API実装を見る • uhyoさんが作ったルーティングライブラリの実装を見る 等
あと8日
最後まで 走り切ります
#ひとりNavigation_API_Advent_Calendar
発表者紹介
• 一児の父 • 会社員 • PodCast User ◦ お元気ですか .fm
• @yamanoku ◦ X ◦ GitHub ◦ BlueSky やまのく
ご清聴 ありがとう ございました