$ the-wire · showcase
Vapor compiler fixes a slot-prop resolution bug, JSX import completions stop lying
By RepoJournal · Filed · About Vue.js · Composed from the cited sources · methodology
vue-jsx-vapor's compiler picked up four Vapor fixes ported from vuejs/core, closing a codegen bug where a JSX element inside an expression lost its slot props, while language-tools corrected an import completion whose label and inserted text disagreed.
fix(compiler/vapor): resolve slot props inside an element expression vuejs/vue-jsx-vapor
A JSX element met inside an expression is compiled as a root of its own with its own codegen context, so {<Foo />} in a slot body printed Foo instead of the slot prop it resolves to. The fix moves the identifier map onto the options every context of one compile shares, and gives _slotProps{N} a counter of its own so a slot block emitted after its enclosing block no longer reuses that block's le...
fix(typescript-plugin): capitalize component name in import completions vuejs/language-tools
With a component at components/some-component.vue, typing import somec offered a completion labelled SomeComponent but inserted import someComponent from 'components/some-component.vue', so the import no longer matched the name used in the template. PascalCase file names were unaffected, which is why the bug only surfaced with kebab-case or otherwise lowercase files; the merged fix is tracked a...
fix(compiler/vapor): hydrate a v-if chain by the branch the server vuejs/vue-jsx-vapor
The Vapor compiler now hydrates a v-if chain by the branch the server actually rendered, copied over from vuejs/core. It matters only if you server-render then hydrate JSX under vue-jsx-vapor.
fix(compiler/vapor): normalize slot props at compile time vuejs/vue-jsx-vapor
Slot props are now normalized at compile time, another port from vuejs/core. Same desk, same theme: slot handling in the Vapor codegen path.