fix(compat): expose _setupProxy for Vue 2.7 compiled script setup (fix #11164) by kwy404 · Pull Request #15618 · vuejs/core · GitHub
Skip to content

fix(compat): expose _setupProxy for Vue 2.7 compiled script setup (fix #11164) - #15618

Merged
edison1105 merged 2 commits into
vuejs:mainfrom
kwy404:fix/compat-setup-proxy
Oct 12, 2026
Merged

edison1105 merged 2 commits into
vuejs:mainfrom
kwy404:fix/compat-setup-proxy

Conversation

@kwy404

@kwy404 kwy404 commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

close #11164

Components compiled by Vue 2.7 from <script setup> read their bindings through _vm._self._setupProxy, which the compat build does not provide, so mounting them crashes. This adds _setupProxy to the compat private APIs, pointing at the instance proxy, which already exposes the setup state.

Summary by CodeRabbit

  • Bug Fixes
    • Fixed compatibility-mode rendering so render functions can access values returned from setup() and reflect updates to reactive values. Components using setup-provided content now render and update correctly.

@coderabbitai

coderabbitai Bot commented Sep 23, 2026 •

Copy link
Copy Markdown

Comment thread packages/runtime-core/src/compat/instance.ts Outdated
@kwy404
kwy404 requested a review from edison1105 September 24, 2026 06:14
@kwy404

kwy404 commented Sep 26, 2026

Copy link
Copy Markdown
Contributor Author

@edison1105 I switched to i.setupState in 3247696 as you suggested and added a $count case to the test. Could you take another look when you have time? Thanks!

@edison1105 edison1105 added the ready to merge The PR is ready to be merged. label Sep 26, 2026
@pkg-pr-new

pkg-pr-new Bot commented Sep 26, 2026

Copy link
Copy Markdown

Open in StackBlitz

@vue/compiler-core

pnpm add https://pkg.pr.new/@vue/compiler-core@15618
npm i https://pkg.pr.new/@vue/compiler-core@15618
yarn add https://pkg.pr.new/@vue/compiler-core@15618.tgz

@vue/compiler-dom

pnpm add https://pkg.pr.new/@vue/compiler-dom@15618
npm i https://pkg.pr.new/@vue/compiler-dom@15618
yarn add https://pkg.pr.new/@vue/compiler-dom@15618.tgz

@vue/compiler-sfc

pnpm add https://pkg.pr.new/@vue/compiler-sfc@15618
npm i https://pkg.pr.new/@vue/compiler-sfc@15618
yarn add https://pkg.pr.new/@vue/compiler-sfc@15618.tgz

@vue/compiler-ssr

pnpm add https://pkg.pr.new/@vue/compiler-ssr@15618
npm i https://pkg.pr.new/@vue/compiler-ssr@15618
yarn add https://pkg.pr.new/@vue/compiler-ssr@15618.tgz

@vue/reactivity

pnpm add https://pkg.pr.new/@vue/reactivity@15618
npm i https://pkg.pr.new/@vue/reactivity@15618
yarn add https://pkg.pr.new/@vue/reactivity@15618.tgz

@vue/runtime-core

pnpm add https://pkg.pr.new/@vue/runtime-core@15618
npm i https://pkg.pr.new/@vue/runtime-core@15618
yarn add https://pkg.pr.new/@vue/runtime-core@15618.tgz

@vue/runtime-dom

pnpm add https://pkg.pr.new/@vue/runtime-dom@15618
npm i https://pkg.pr.new/@vue/runtime-dom@15618
yarn add https://pkg.pr.new/@vue/runtime-dom@15618.tgz

@vue/server-renderer

pnpm add https://pkg.pr.new/@vue/server-renderer@15618
npm i https://pkg.pr.new/@vue/server-renderer@15618
yarn add https://pkg.pr.new/@vue/server-renderer@15618.tgz

@vue/shared

pnpm add https://pkg.pr.new/@vue/shared@15618
npm i https://pkg.pr.new/@vue/shared@15618
yarn add https://pkg.pr.new/@vue/shared@15618.tgz

vue

pnpm add https://pkg.pr.new/vue@15618
npm i https://pkg.pr.new/vue@15618
yarn add https://pkg.pr.new/vue@15618.tgz

@vue/compat

pnpm add https://pkg.pr.new/@vue/compat@15618
npm i https://pkg.pr.new/@vue/compat@15618
yarn add https://pkg.pr.new/@vue/compat@15618.tgz

commit: 3247696

@github-actions

Copy link
Copy Markdown

Size Report

Bundles

File Size Gzip Brotli
runtime-dom.global.prod.js 109 kB 41.3 kB 37 kB
vue.global.prod.js 168 kB 61.5 kB 54.6 kB

Usages

Name Size Gzip Brotli
createApp (CAPI only) 50.8 kB 19.6 kB 18 kB
createApp 58.9 kB 22.7 kB 20.8 kB
createSSRApp 63.7 kB 24.7 kB 22.5 kB
defineCustomElement 65.2 kB 24.6 kB 22.5 kB
overall 73.5 kB 28 kB 25.5 kB

@kwy404

kwy404 commented Sep 26, 2026

Copy link
Copy Markdown
Contributor Author

@edison1105
edison1105 merged commit f08059d into vuejs:main Oct 12, 2026
13 of 14 checks passed
kwy404 added a commit to kwy404/kwy404 that referenced this pull request Oct 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready to merge The PR is ready to be merged. scope: v2 compat

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Compiled Vue 2.7 Script Setup Components crash when mounted in Vue 3 Compat

2 participants