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
axiosで作る:ファイルアップロード体験を改善する「Progress Toast」
Search
Tasuku Watanabe
November 14, 2025
Programming
620
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
axiosで作る:ファイルアップロード体験を改善する「Progress Toast」
Tasuku Watanabe
November 14, 2025
More Decks by Tasuku Watanabe
See All by Tasuku Watanabe
モックわからないマン卒業記 ~振る舞いを起点に見直した、フロントエンドテストにおけるモックの使いどころ~
tasukuwatanabe
3
580
useImperativeHandleで理解する クロージャと評価タイミング
tasukuwatanabe
1
110
Other Decks in Programming
See All in Programming
The Good Stuff, Not the Slop: Engineering High-Quality Android Apps with Modern AI Tooling
danybony
1
240
App Intentsのビルドプロセスを支える技術
kntkymt
0
260
iOSDC2026登壇資料.pdf
riofujimon
0
110
信頼性の目標を誰も求めてない
shubox
0
500
AI駆動開発にグラフDBを重ねてみた
satoshi256kbyte
2
780
週末にAI-DLCを本気で回したら$1,600溶けた
hbashimizu
0
130
Webの地図
yosuke_furukawa
PRO
6
4.2k
LLMは4年分のCompose移行を再現できるのか?実プロダクト279件のXMLで探る自動化の境界線
makun
0
550
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
650
Omarchy Tokyo やると聞いて UMPC 買ってセットアップしてきた
mtsmfm
0
140
【高い買い物LT会】初任給で話題の国産フィジカルAIを買った話
akagami
PRO
0
150
AIエージェント時代のコードレビューを設計する
nogu66
6
2.6k
Featured
See All Featured
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
Building the Perfect Custom Keyboard
takai
2
870
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
4
630
ラッコキーワード サービス紹介資料
rakko
1
4.8M
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
230
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
450
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
560
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
530
Transcript
ファイルアップロード体験を 改善する Progress Toast 2025/11/14 React Tokyo #11 株式会社HRBrain 渡邉
佑 axiosで作る
2 AGENDA • 自己紹介 • 何を作ったのか • 技術的アプローチ • 実装①:配列管理とグローバル配信
• 実装②:一方向の状態遷移で論理的整合性を保つ • 実装③:前回アップロードとの競合を防ぐ • まとめ
3 • 株式会社HRBrain • X: https://x.com/tasuku_web • 新潟県の佐渡島出身 • 新卒で外交船航海士の道へ
• ウェブ制作やアナリティクスに転向 • Vue Fes Japan 2025 参加 • 相撲部屋や洞窟探検のYoutubeを観てます 自己紹介 渡邉 佑 Tasuku Watanabe
Progress Toast 4 何を作ったのか • リアルタイム進捗表示 • 複数の独立したトースト • キャンセル機能
• 結果に応じたステータス表示
5 何を作ったのか 進捗割合を表示 結果に応じてステータスが変化
onUploadProgress コールバック • ProgressEvent.loaded: 送信済みバイト数 • ProgressEvent.total: 総バイト数 • リアルタイムで進捗率を計算・更新
6 技術的アプローチ
7 実装①:配列管理とグローバル配信 • 配列で複数のProgress Toastを保持 • Context経由でアプリ全体からアクセス可能 • 各コンポーネントが独立してトーストを追加・削除
8 実装②:一方向の状態遷移で意図しない更新を防止 • 一方向遷移で状態の論理が明確(progress→success) • ユーザーに混乱を与える、誤った状態変化を防ぐ(success→progress)
9 • useRefでAbortController参照を永続化 • 新規アップロード時の前回処理の中断 • 状態競合を防ぐ識別機構で安全性確保 実装③:前回アップロードとの競合を防ぐ
• onUploadProgressでリアルタイム進捗表示 • Context配信でアプリ全体からアクセス可能 • AbortControllerで安全な中断制御 • 一方向状態遷移で意図しない更新を防止 10 まとめ
ご清聴ありがとうございました!