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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
kouki.miura
August 25, 2026
Programming
43
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プロジェクトをTypeScript7に対応させる- Side-by-Side戦略による一部高速化 -
koukimiura
0
120
VueSapporo#4
koukimiura
0
36
Vue3_Capacitorでモバイルアプリ開発
koukimiura
0
41
Vueが軽く&速くなる!Vapor Modeを試してみた
koukimiura
0
53
医療DXって何?~電子カルテ標準仕様まで10分で理解する~
koukimiura
1
82
アプリ開発者が知っておくべき『トランザクション分離レベル』とRead Committed の罠
koukimiura
0
97
フルスタックTypeScript入門 ~Hono RPCとZodで実現する型共有~
koukimiura
0
75
ITヒヤリハットを整理してみた ~ライフサイクルと原因から考える再発防止策~
koukimiura
1
180
ReactとVueは仲良くできるのか?
koukimiura
0
53
Other Decks in Programming
See All in Programming
iOSDC2026登壇資料.pdf
riofujimon
0
170
AWS DevOps Agentで インシデント対応をAIに任せたい
honmarkhunt
7
3k
海上で動くGoサーバー: goroutineとchannelでさばく航行データストリーム
atsuki_seo
0
720
変化を抱擁するドキュメントの作り方 - ビジネスルール駆動開発がもたらす、コードとの新しい関係
ioki
2
210
技術的負債の返済は、AI時代の複利で効く投資 — 経営としての意思決定とその遂行
curekoshimizu
0
1.4k
How I Stole PSI from Android Studio - DroidKaigi2026
worker8
0
130
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
1
150
モジュールの視点からSwiftを読み解く #iosdc
s_shimotori
0
180
App Intentsのビルドプロセスを支える技術
kntkymt
0
380
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
1.9k
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
590
XHTMLが残したもの
yosuke_furukawa
PRO
2
810
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.7k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Paper Plane (Part 1)
katiecoart
PRO
2
11k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
520
ラッコキーワード サービス紹介資料
rakko
1
4.9M
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
KATA
mclloyd
PRO
35
15k
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日時点) ご清聴ありがとうございました。