Use useSlots().default method to determine whether the slot is in doubt after the contents of the slot have been commented out
Vue version
^3.2.13
Link to minimal reproduction
Steps to reproduce
SlotTag Component:
html:
App.vue:
html:
browser console output: default exists: (...args) => { // If a user calls a compiled slot inside a template expression (#1745), it // can mess up block tracking, so by default we disable block tracking and // force bail out whe…
What is expected?
the code for the annotation should not be detected, expecting a undefined value to be returned Expect the output to be log below: default exists: false
What is actually happening?
I'm furiously reading the vue design and implementation book, trying to figure out what's going on
System Info
No response
Any additional comments?
No response
I think you can find why useSlots().default
is a function from this line:https://github.com/vuejs/core/blob/main/packages/runtime-core/src/componentSlots.ts#L130.
I hope that can help you.
I think you can find why
useSlots().default
is a function from this line:https://github.com/vuejs/core/blob/main/packages/runtime-core/src/componentSlots.ts#L130. I hope that can help you.
I think the problem is not whether useSlots().default
is a function, but whether the comment node can be judged in slot by passing in
my example
@DavidAwing
After looking at the compiled result, the comment node is also a case of vnode, so there is no problem with useSlots().default
being true. But I still think this performance makes me confused in development ....