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
Vue3.6.0-rc_CHANGELOG読み合わせ
Search
kouki.miura
August 25, 2026
Programming
65
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Vue3.6.0-rc_CHANGELOG読み合わせ
GitHub vuejs/coreの 3.6.0-rcバージョン CHANGELOGの内容読み合わせ資料です。
kouki.miura
August 25, 2026
More Decks by kouki.miura
See All by kouki.miura
vue-tsc x TypeScript7
koukimiura
0
21
SFCで実現する病院・医療システムの動的組み立て式UI
koukimiura
1
130
診療情報提供書 × HL7 FHIR ~医療情報の標準化を実際に実装してみる~
koukimiura
0
94
VueプロジェクトをTypeScript7に対応させる- Side-by-Side戦略による一部高速化 -
koukimiura
0
260
VueSapporo#4
koukimiura
0
49
Vue3_Capacitorでモバイルアプリ開発
koukimiura
0
56
Vueが軽く&速くなる!Vapor Modeを試してみた
koukimiura
0
100
医療DXって何?~電子カルテ標準仕様まで10分で理解する~
koukimiura
1
130
アプリ開発者が知っておくべき『トランザクション分離レベル』とRead Committed の罠
koukimiura
0
130
Other Decks in Programming
See All in Programming
Coding with AI: How to trust the storyteller (AWS Community Day Adria, Ljubljana 2026)
slobodan
0
120
あなたの await、OS まで届いてる? strace で覗く JavaScript の非同期
hasutosasaki
1
1.6k
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
260
우리의 Nitro Modules는 당신의 Turbo Modules보다 아름답다
l2hyunwoo
0
230
Snowflake Openflow Connector利用の勘所 / 20261024developersio2026tokyo-snowflake-openflow
kasacchiful
PRO
0
220
No More NoSuchMethodError
exoego
1
120
Vapor Mode でアクセシビリティは 壊れないか検証した話
fuqda
1
190
Web Framework Benchmark Battle 2026, Any%
a_matsuda
3
3k
Performance Optimization With LLMs
xleitix
0
210
PyConTW 2026 - AI Coding 不只是工具升級, 區域醫院醫療資訊系統協作開發與資訊團隊轉型實踐
cclai999
0
200
TanStack Vue Query と Pinia Colada から学ぶ非同期状態の型設計
aoshi
0
340
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
1.2k
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Code Reviewing Like a Champion
maltzj
529
40k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
550
So, you think you're a good person
axbom
PRO
2
2.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
59k
What the history of the web can teach us about the future of AI
inesmontani
PRO
2
750
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
280
Google's AI Overviews - The New Search
badams
0
1.6k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
1k
Transcript
2026.08.24 / VueSapporo #4 Vue 3.6.0-rc CHANGELOG読み合わせ 三浦 恒樹 (MIURA
KOUKI) / 医療ITエンジニア
自己紹介 - ドゥウェル株式会社 に所属(マネージャー) 医療ITエンジニア / 診療情報管理士 / 上級医療情報技師 /
医用画像情報専門技師 TypeScript / Vue.js / Node.js / Java / C# / PHP - 3兄弟の父、休日は習い事の送り迎えとか... - 参加している勉強会 札幌PHP勉強会 ゆるWeb勉強会 AWS初心者LT会in札幌 hokkaido.js さっぽろ医療IT勉強会 - コーディングBGM ラックライフ BLUE ENCOUNT SHANK Dizzy Sun Fist JBUG札幌 えびてく 札幌すごいAI会 函館本線沿線勉強会 JavaDO クラメソ札幌IT勉強会(仮) 札幌IT石狩鍋 VueSapporo ※運営 - Naru, 名前を呼ぶよ, 初めの一歩, 変わらない空 - Survivor, ポラリス
今日の目的と方針 目的 方針 CHANGELOGを読みながら認識を合わせる CHANGELOGに書かれている内容だけを扱う • Vue 3.6で何が変わるのか • デモは行わない
• Vapor Modeとは何なのか • Bug Fixの個別説明は行わない • どのような制約があるのか • 実装の詳細には踏み込まない • rc.2で何が変更されたのか • CHANGELOGにない内容は扱わない 「Vapor Modeはこういうものだ」という認識を、CHANGELOGの記述ベースで揃えるのがゴールです。
Vue 3.6.0-rc のリリース状況 vuejs/core minor branch CHANGELOG.md / 2026年8月23日時点 Version
Release CHANGELOG上の位置づけ 3.6.0-rc.1 2026-07-18 Vapor Modeの説明(About Vapor Mode) 3.6.0-rc.2 2026-07-22 Event Delegationの変更 / BREAKING CHANGES 3.6.0-rc.3 2026-08-11 Bug Fixes 3.6.0-rc.4 2026-08-14 Bug Fixes 3.6.0-rc.5 2026-08-21 Bug Fixes / Performance Improvements 今日見るところ • rc.1 の「About Vapor Mode」 • rc.2 の「BREAKING CHANGES」 • rc.3 〜 rc.5 は概要のみ確認
3.6.0-rc.1 — RCフェーズへ Vue 3.6 is now entering the RC
phase Vapor Modeについて予定されていた機能パッケージの開発が完了したため、Vue 3.6はRCフェーズへ入った。 Vapor Mode @vue/reactivity • Vue SFC向けの新しいCompilation Mode • alien-signalsをベースとした大規模Refactor • Baseline Bundle Sizeの削減 • Reactivity SystemのPerformance改善 • Performanceの改善 • Memory Usageの改善 → 今日の中心は Vapor Mode ※alien-signals=超軽量かつ超高速な シグナル(Signal)ベースのリアクティビティ(状態管理)ライブラリ
About Vapor Mode — Vapor Modeとは? Vue Single-File Components(SFCs)のための新しいCompilation Mode
目的と特徴 利用できないFeature • Baseline Bundle Sizeの削減 • VNodesに依存するもの • Performanceの改善 • Component Public Instance Proxyに依存するも の • 100% Opt-in / Vue APIのSubsetをサポート • SupportedなAPIはほぼ同一のBehavior 3rd party benchmarkでSolid / Svelte 5と同水準の Performanceを示している、とされている。 = Vapor Modeは「Vue 3の全Featureをそのまま使えるMode」ではない。
General Stability Notes — 想定されている使い方 Vapor Mode is feature-complete in
Vue 3.6 RC. 既存アプリ 新規アプリ Performance-sensitiveなPageなど、一部をVapor Modeで実装する。 小規模なApplicationをEntirely in Vapor Modeで構 築する。 ポイント Vapor Modeは、既存Vueアプリを一括して移行することを前提とした機能ではない。100% Opt-inで、Modeごとに範囲を区 切って利用する。
Opting In to Vapor Mode — SFCごとに明示的にOpt-in Template-only SFC /
<script setup> をサポート。Options API は Not supported。 <script setup vapor> <script vapor> <template vapor> <script setup vapor> // ... </script> <script vapor> // ... </script> <template vapor> <!-- ... --> </template> vapor 属性を付ける <script setup vapor> の short-hand Templateにmarkerを付けて SFC全体をVapor compilation → Vapor Modeは、SFC単位で明示的にOpt-inする。3.6へアップグレードしただけでは有効にならない。
Pure Vapor Application — createVaporApp() import { createVaporApp } from
'vue' import App from './App.vue' Virtual DOM Runtime Codeをbundleに含めない。 → Baseline Bundle Sizeを大幅に削減できる。 createVaporApp(App).mount('#app') CHANGELOGでの前提 • Vapor Componentだけで構成されたApplicationで利用できる。 • Render FunctionやJSXで書かれたComponentはVDOM Componentのままであり、Vapor Applicationの中で使う 場合もInteropが必要。
VDOM Interop — vaporInteropPlugin VDOM App → Vapor createApp() で作成したVDOM
AppからVapor Componentを使う場合、vaporInteropPluginをInstallす る。 import { createApp, vaporInteropPlugin } from 'vue' import App from './App.vue' createApp(App) .use(vaporInteropPlugin) .mount('#app') Vapor App → VDOM Vapor Appにも vaporInteropPlugin をInstallでき、中 でVDOM Componentを使える。 ただし VDOM Runtimeがbundleに含まれるため、Vapor によるBundle Size削減のメリットが相殺される。 Render Function / JSX で書かれたComponentもVDOM Component扱い。Vapor Appの中で使う場合はInteropが必要。
VDOM Interop Limitations — Mixed Nestingは避ける CHANGELOGでカバーされているもの Props / Events
/ Slots Vapor ComponentとNon-Vapor Componentを相互に Nestできる。 ただし • すべてのEdge Caseには対応していない • VDOMベースのComponent LibraryをVapor Modeで 使うと Rough Edges が残る可能性がある CHANGELOGの推奨:アプリ内でModeごとに明確な「Region」を分け、Mixed Nestingをできるだけ避 ける。 例:高頻度更新の画面だけをVaporのRegionにし、ナビゲーションや既存Component LibraryはVDOMのままにする。
Feature Compatibility — Unsupported / Not Applicable SupportedなSubsetについては、API 仕様に従った同じ振る舞いを目指す。 Feature
Vapor Mode Options API Unsupported app.config.globalProperties Unsupported getCurrentInstance() null を返す @vue:xxx per-element lifecycle events Unsupported v-memo Unsupported Component Template Refs の $el / $props / $attrs / $slots / $refs 公開されない Custom Directives Vapor専用のInterface → VaporはVue 3の全機能をそのまま利用できるModeではない。移行検討時はまずこの表を確認する。
Event Delegation と stopPropagation() Important Usage Considerations(3.6.0-rc.1 時点の記述) 仕組み 注意点
• 対象のイベントを document へDelegation 上位階層で event.stopPropagation() を呼ぶと、Event が document まで到達しない。 • 各Elementが自身のHandlerを保持 • document のSingle ListenerがEvent Pathをたど り、該当Handlerを実行 → Delegated Handlerが実行されない場合がある。 Delegationを使わず、Elementへ直接Listenerをattachするケース <button @[event]="onClick" /> <button v-bind="{ onClick }" /> <button v-on="{ click: onClick }" /> rc.1時点:VaporのEvent Delegationは、VDOM ModeやNative DOMとは異なる振る舞いが発生する可能性がある。
slots.default() Is Not a Safe Dry Run Vaporでは slots.default?.() は
副作用が無い安全な Inspection API ではない。 呼び出すと起きること CHANGELOGの推奨 • SlotのRendering Logicが実行される SlotのRenderingはTemplateに任せる。 • BlocksやDOM Nodesを生成する可能性 • Reactive Effectsを登録する可能性 • Hydration時に既存SSR DOMをClaimする可能性 <template> <slot /> </template> 「Slotが存在するか確認するためのAPI」として扱わない。
Custom Directives — VDOMとは異なるInterface type VaporDirective = ( node: Element
| VaporComponentInstance, value?: () => any, argument?: string, modifiers?: DirectiveModifiers, ) => (() => void) | void value Reactive Effect Cleanup Binding Valueを返す Reactive Getter として渡される。 watchEffect() で設定できる。 ComponentのUnmount時に自動で Releaseされる。 DirectiveからCleanup Functionを Returnすることもできる。 → VDOMの mounted / updated / unmounted を持つObjectとは別物。Directiveは個別の移行対象になる。
Behavior Consistency — VDOM Modeとの一致 Vapor Mode は VDOM Mode
の振る舞いに可能な限り合わせることを目指す。 ただし CHANGELOG上の扱い VDOMとVaporは根本的に異なる Rendering Mode であ るため、Edge Caseでは Minor Inconsistency(軽微な不 整合) が残る可能性がある。 以前にDocumentedされていない Minor Inconsistency (軽微な不整合) は、原則としてBreaking Change(破壊的 変更) とはみなさない。 →「Vaporに移したら細かい挙動が違う」は起こり得る前提として読む。
3.6.0-rc.2 — BREAKING CHANGES Features: compiler-vapor: make event delegation opt-in
(#15127) Vapor event delegation is now opt-in Before(rc.1) After(rc.2〜) Supported Eventsを自動的に document へ Delegationしていた。 DOM Event Listenerは、デフォルトでElementへ直接 Attachされる。 Delegationを使いたい場合は Vapor専用の .delegate Modifier でOpt-in <button @click.delegate="onClick" /> compilerOptions.eventDelegation は削除 変更理由:Vapor Mode を Standard Vue / Native DOM の Event Behavior に合わせるため。
3.6.0-rc.3 〜 rc.5 個々のBug Fixについては、今回の読み合わせでは扱わない。 rc.3 rc.4 rc.5 2026-08-11 2026-08-14
2026-08-21 Bug Fixes Hydration / KeepAlive / Slot / compiler-vapor まわりの修正が中 心。 Bug Fixes Fallthrough attrs、v-for、 Transition まわりの修正が中心。 Bug Fixes / Performance Fallthrough attrsの整合に加え、 TransitionGroup / v-for の Performance改善。 → RCとして、Bug Fixes / Performance Improvements を中心に修正が継続している。
まとめ — Vue 3.6.0-rc CHANGELOG Vapor Mode(rc.1) 制約とVDOMとの関係 • Vue
SFC向けの新しいCompilation Mode • Options API / VNode依存Featureは非対応 • Bundle Size削減 / Performance改善 • Props・Events・SlotsはInterop可能 • 100% Opt-in、Vue APIのSubset • ただしMixed Nestingは避ける rc.2 Event DelegationがOpt-inへ。@click は Element へ直接Attach、Delegationは @click.delegate。 compilerOptions.eventDelegation は削除。 Vapor Modeは既存Vueの完全互換Modeではなく、明確なSubsetとして提供される。
Reference Vue.js Core CHANGELOG(minor branch) https://github.com/vuejs/core/blob/minor/CHANGELOG.md Release Notes:https://github.com/vuejs/core/releases 対象Version:3.6.0-rc.1 /
rc.2 / rc.3 / rc.4 / rc.5(2026年8月23日時点) ご清聴ありがとうございました。