-
-
Notifications
You must be signed in to change notification settings - Fork 8.6k
feat(vapor): generate more efficient runtime code for specific interpolation patterns #13278
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: vapor
Are you sure you want to change the base?
Conversation
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
✅ Deploy Preview for vapor-repl ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
@vue/compiler-core
@vue/compiler-dom
@vue/compiler-ssr
@vue/compiler-sfc
@vue/compiler-vapor
@vue/reactivity
@vue/runtime-core
@vue/runtime-dom
@vue/runtime-vapor
@vue/server-renderer
@vue/shared
vue
@vue/compat
commit: |
3660b4c
to
5f8441d
Compare
Added two new template interpolation matching patterns to generate more efficient runtime code.
:key
bindingWhen a v-for has a
:key
binding, if the interpolation expression only accesses the:key
binding without referencing other variables, the expression result should remain constant. Therefore, it only needs to be executed once during v-for rendering and doesn't need to be re-executed in every renderEffect.===
comparison with:key
bindingWhen a v-for has a
:key
binding, if the mutable part of the expression is in the form ofx === y
where one side is the:key
binding and the other is an external variable from outside the v-for, this expression can be treated as a selector. The v-for will maintain a key-value map between the external variable and the:key
.Whenever the external variable changes, the v-for will selectively execute the render effect for specific v-for items based on the previous and new values of the external variable.