-
-
Notifications
You must be signed in to change notification settings - Fork 4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore: more slot/snippet interop #11619
base: main
Are you sure you want to change the base?
Conversation
…should be booleans)
|
This builds on top of #10800 and explores what it takes to make slots and snippets interoperable. It allows you to use render tags already when your consumers still pass slots, or pass snippets already when the component you pass it to still uses slots. From my guess the latter is likely more common (you're depending on some third party library which hasn't updated yet).
Implementation-wise it passes
{ $$slots: { foo: true } }
for a snippet prop namedfoo
, and the render functions for snippets/slots were adjusted to check both locations for content, and react accordingly.The drawback is that it's a bit more runtime code, and it's somewhat brittle, because it will only work for render tags with 0 or 1 argument (
<slot {foo} {bar} />
===@render children({foo, bar})
) which could be a bit confusing. It's very nice that it "just works" in the common case though.Putting this up for completeness even if it's unlikely that we land this.
Before submitting the PR, please make sure you do the following
feat:
,fix:
,chore:
, ordocs:
.Tests and linting
pnpm test
and lint the project withpnpm lint