Skip to content

Conversation

KaelWD
Copy link
Contributor

@KaelWD KaelWD commented Jun 30, 2022

Components can be rendered without registering them in options.components:

Vue.extend({ render (h) { return h(MyComponent) } })

But directives can't:

Vue.extend({ directives: { MyDirective }, render (h) { return h(MyComponent, { directives: [{ name: 'my-directive' }] }) } })

This change allows you to do:

Vue.extend({ render (h) { return h(MyComponent, { directives: [{ def: MyDirective }] }) } })

This already mostly works in 2.7 beta, but there is no type definition and it is overwritten in <script setup> components

What kind of change does this PR introduce? (check at least one)

  • Bugfix
  • Feature
  • Code style update
  • Refactor
  • Build-related changes
  • Other, please describe:

Does this PR introduce a breaking change? (check one)

  • Yes
  • No

If adding a new feature, the PR's description includes:

  • A convincing reason for adding this feature (to avoid wasting your time, it's best to open a suggestion issue first and wait for approval before working on it)
@yyx990803 yyx990803 merged commit 5f71044 into vuejs:main Jul 4, 2022
@KaelWD KaelWD deleted the feat/inline-directive-definition branch July 25, 2022 16:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants