fix(compiler-sfc): scoped style leak when using pseudo classes (fix #8868) #9693
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.
Fix a scoped style leak when using pseudo classes caused by the scoped style attribute (i.e.
[data-v-...]
) not being attached to the key part of a selector when it contains pseudo class selectors.Closes #8868.
Note that the PR in its current state changes the placement of the scoped style attribute when using pseudo classes from "inject before the pseudo class selector" to "inject after the pseudo class selector" (e.g.
[data-v-test]::selection
becomes::selection[data-v-test]
). Both should be functionally/semantically equivalent, but they do look a little strange. Especially for functional style pseudo classes, this looks weird:input:not(.error)[data-v-test]
.Changing the logic in pluginScoped to inject the scoped style attribute to always be at the start of pseudo class selectors in key position would definitely increase the complexity of the code here. Let me know if the PR’s current behavior is a problem and should be changed.
Just to be clear, I think the position of the scoped style attribute is pretty much just a cosmetic issue as far as I can tell.