Skip to content

Conversation

@edison1105
Copy link
Member

No description provided.

@netlify
Copy link

netlify bot commented May 30, 2025

Deploy Preview for vapor-repl ready!

Name Link
🔨 Latest commit 6c5ebf4
🔍 Latest deploy log https://app.netlify.com/projects/vapor-repl/deploys/685a6bfc0df69f00083fdb37
😎 Deploy Preview https://deploy-preview-13422--vapor-repl.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai
Copy link

coderabbitai bot commented May 30, 2025

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch edison/feat/setScopeId

Comment @coderabbitai help to get the list of available commands and usage tips.

@pkg-pr-new
Copy link

pkg-pr-new bot commented May 30, 2025

Open in StackBlitz

@vue/compiler-core

npm i https://pkg.pr.new/@vue/compiler-core@13422

@vue/compiler-dom

npm i https://pkg.pr.new/@vue/compiler-dom@13422

@vue/compiler-sfc

npm i https://pkg.pr.new/@vue/compiler-sfc@13422

@vue/compiler-ssr

npm i https://pkg.pr.new/@vue/compiler-ssr@13422

@vue/compiler-vapor

npm i https://pkg.pr.new/@vue/compiler-vapor@13422

@vue/reactivity

npm i https://pkg.pr.new/@vue/reactivity@13422

@vue/runtime-core

npm i https://pkg.pr.new/@vue/runtime-core@13422

@vue/runtime-dom

npm i https://pkg.pr.new/@vue/runtime-dom@13422

@vue/runtime-vapor

npm i https://pkg.pr.new/@vue/runtime-vapor@13422

@vue/server-renderer

npm i https://pkg.pr.new/@vue/server-renderer@13422

@vue/shared

npm i https://pkg.pr.new/@vue/shared@13422

vue

npm i https://pkg.pr.new/vue@13422

@vue/compat

npm i https://pkg.pr.new/@vue/compat@13422

commit: 1338683

@edison1105 edison1105 changed the title feat(vapor): setScopeId feat(vapor): scopeId Jun 3, 2025
@edison1105 edison1105 force-pushed the edison/feat/setScopeId branch 7 times, most recently from 50079e0 to 3cdd934 Compare June 7, 2025 01:57
@edison1105 edison1105 force-pushed the edison/feat/setScopeId branch from 3cdd934 to b5f6f01 Compare June 7, 2025 14:14
@edison1105 edison1105 force-pushed the edison/feat/setScopeId branch 6 times, most recently from 81cb674 to d13d5ed Compare June 9, 2025 03:42
@edison1105 edison1105 force-pushed the edison/feat/setScopeId branch from d13d5ed to 9772a4c Compare June 9, 2025 08:00
Copy link
Member

@LittleSound LittleSound left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Relevant Information

Scope ID is an important mechanism in Vue used for implementing style scoping (Scoped CSS). Its main role is style isolation and scope passing.

In slot content, both the parent component's scopeId and the child component's scopeId (with a -s suffix) are included. This ensures that the slot content can inherit the parent component's styles while maintaining the child component's style isolation.

Copy link
Member

@LittleSound LittleSound left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The discussion of Team Vapor is as follows:

There are actually many ways to partition CSS by component. Vue already supports more than one approach, and the previous Scope ID method wasn’t necessarily the most performant one.

So, if we’re unsure about doing it right at the moment — or if the current direction feels problematic — we don’t have to implement it just yet. We can always revisit it later if there’s a clear need from users.

For Vapor, where performance is a key focus, CSS Modules might actually be a better choice. Vite already has good support for them, so the implementation could be simpler and more efficient.

Native CSS @scope could be the ultimate solution, but browser support requirements are too high right now. The current implementation is designed for VDOM compatibility, but my implementation isn't great and has poor performance — this may need Evan‘s advice

Base automatically changed from vapor to minor July 7, 2025 00:06
@LittleSound LittleSound mentioned this pull request Jul 22, 2025
20 tasks
@github-actions
Copy link

Size Report

Bundles

File Size Gzip Brotli
compiler-dom.global.prod.js 84.5 kB 30 kB 26.4 kB
runtime-dom.global.prod.js 105 kB (+157 B) 39.6 kB (+36 B) 35.7 kB (+32 B)
vue.global.prod.js 163 kB (+157 B) 59.8 kB (+45 B) 53.2 kB (+58 B)

Usages

Name Size Gzip Brotli
createApp (CAPI only) 47.6 kB (+160 B) 18.6 kB (+51 B) 17 kB (+48 B)
createApp 56.4 kB (+160 B) 21.7 kB (+44 B) 19.8 kB (+31 B)
createApp + vaporInteropPlugin 89 kB (+596 B) 33.3 kB (+181 B) 30.1 kB (+190 B)
createVaporApp 33.1 kB (+668 B) 12.6 kB (+215 B) 11.5 kB (+194 B)
createSSRApp 60.7 kB (+164 B) 23.5 kB (+49 B) 21.4 kB (+49 B)
defineCustomElement 61.4 kB (+160 B) 23.3 kB (+56 B) 21.2 kB (+47 B)
overall 71.3 kB (+157 B) 27.1 kB (+43 B) 24.6 kB (+38 B)

@edison1105 edison1105 force-pushed the edison/feat/setScopeId branch from 5bcaa9d to 1338683 Compare October 21, 2025 05:56
@edison1105
Copy link
Member Author

re-impl via #14004

@edison1105 edison1105 closed this Oct 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants