fix(compiler-ssr): fix SSR issue when dynamic and static class used #2354
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi,
First PR on Vue3, and first time looking at the SSR process!
This one kept me busy few hours, to understand how all of that that runs (hurray for the debugger!).
As you can see in the Template explorer, there is an issue with the ssr compiler.
In the case of a dynamic class attribute first, we end up with:
Instead of, if we invert the order:
(Actually, it happens only if there is a parent, but I've omitted it in the example, for simplicity)
This comes from the
removeStaticBinding
function in compiler-ssr/src/transforms/ssrTransformElement.ts which is supposed to remove the static binding, but which in fact removes only the first one found.This PR adds some tests to reproduce the bug and fixes the issue.
Thanks for your work!
Matt'