mirror of https://github.com/sveltejs/svelte
feat: migrate slot usages (#13500)
Now that snippets can fill slots, we can add logic to migrate slot usagespull/13515/head
parent
aa3f002465
commit
687d9dbef2
@ -0,0 +1,5 @@
|
||||
---
|
||||
'svelte': patch
|
||||
---
|
||||
|
||||
feat: migrate slot usages
|
@ -0,0 +1,82 @@
|
||||
<Component>
|
||||
unchanged
|
||||
</Component>
|
||||
|
||||
<svelte:component this={Component}>
|
||||
unchanged
|
||||
</svelte:component>
|
||||
|
||||
<Component let:foo>
|
||||
<div>{foo}</div>
|
||||
</Component>
|
||||
|
||||
<Component let:foo={bar}>
|
||||
<div>{bar}</div>
|
||||
</Component>
|
||||
|
||||
<svelte:component this={Component} let:foo>
|
||||
<div>{foo}</div>
|
||||
</svelte:component>
|
||||
|
||||
<Component>
|
||||
<div slot="named">x</div>
|
||||
</Component>
|
||||
|
||||
<Component>
|
||||
<div slot="named">
|
||||
<p>multi</p>
|
||||
<p>line</p>
|
||||
</div>
|
||||
</Component>
|
||||
|
||||
<Component>
|
||||
<svelte:element this={'div'} slot="named">x</svelte:element>
|
||||
</Component>
|
||||
|
||||
<Component>
|
||||
<div slot="foo" let:foo>{foo}</div>
|
||||
<div slot="bar" let:foo={bar}>{bar}</div>
|
||||
</Component>
|
||||
|
||||
<Component let:foo>
|
||||
{foo}
|
||||
<div slot="named">x</div>
|
||||
</Component>
|
||||
|
||||
<Component>
|
||||
<svelte:fragment let:foo>{foo}</svelte:fragment>
|
||||
</Component>
|
||||
|
||||
<Component>
|
||||
<svelte:fragment slot="named" let:foo>{foo}</svelte:fragment>
|
||||
</Component>
|
||||
|
||||
<Component>
|
||||
<div slot="foo">foo</div>
|
||||
OMG WHY
|
||||
<div slot="bar">bar</div>
|
||||
</Component>
|
||||
|
||||
<Component>
|
||||
If you do mix slots like this
|
||||
<div slot="foo">foo</div>
|
||||
you're a monster
|
||||
<div slot="bar">bar</div>
|
||||
</Component>
|
||||
|
||||
<Component let:omg>
|
||||
<div slot="foo">foo</div>
|
||||
{omg} WHY
|
||||
<div slot="bar">bar</div>
|
||||
</Component>
|
||||
|
||||
<Component let:monster>
|
||||
If you do mix slots like this
|
||||
<div slot="foo">foo</div>
|
||||
you're a {monster}
|
||||
<div slot="bar">bar</div>
|
||||
</Component>
|
||||
|
||||
<c-e>
|
||||
<div slot="named">unchanged</div>
|
||||
</c-e>
|
@ -0,0 +1,126 @@
|
||||
<Component>
|
||||
unchanged
|
||||
</Component>
|
||||
|
||||
<Component>
|
||||
unchanged
|
||||
</Component>
|
||||
|
||||
<Component >
|
||||
{#snippet children({ foo })}
|
||||
<div>{foo}</div>
|
||||
{/snippet}
|
||||
</Component>
|
||||
|
||||
<Component >
|
||||
{#snippet children({ foo: bar })}
|
||||
<div>{bar}</div>
|
||||
{/snippet}
|
||||
</Component>
|
||||
|
||||
<Component >
|
||||
{#snippet children({ foo })}
|
||||
<div>{foo}</div>
|
||||
{/snippet}
|
||||
</Component>
|
||||
|
||||
<Component>
|
||||
{#snippet named()}
|
||||
<div >x</div>
|
||||
{/snippet}
|
||||
</Component>
|
||||
|
||||
<Component>
|
||||
{#snippet named()}
|
||||
<div >
|
||||
<p>multi</p>
|
||||
<p>line</p>
|
||||
</div>
|
||||
{/snippet}
|
||||
</Component>
|
||||
|
||||
<Component>
|
||||
{#snippet named()}
|
||||
<svelte:element this={'div'} >x</svelte:element>
|
||||
{/snippet}
|
||||
</Component>
|
||||
|
||||
<Component>
|
||||
{#snippet foo({ foo })}
|
||||
<div >{foo}</div>
|
||||
{/snippet}
|
||||
{#snippet bar({ foo: bar })}
|
||||
<div >{bar}</div>
|
||||
{/snippet}
|
||||
</Component>
|
||||
|
||||
<Component >
|
||||
{#snippet children({ foo })}
|
||||
{foo}
|
||||
{/snippet}
|
||||
{#snippet named()}
|
||||
<div >x</div>
|
||||
{/snippet}
|
||||
</Component>
|
||||
|
||||
<Component>
|
||||
{#snippet children({ foo })}
|
||||
{foo}
|
||||
{/snippet}
|
||||
</Component>
|
||||
|
||||
<Component>
|
||||
{#snippet named({ foo })}
|
||||
{foo}
|
||||
{/snippet}
|
||||
</Component>
|
||||
|
||||
<Component>
|
||||
{#snippet foo()}
|
||||
<div >foo</div>
|
||||
{/snippet}
|
||||
OMG WHY
|
||||
{#snippet bar()}
|
||||
<div >bar</div>
|
||||
{/snippet}
|
||||
</Component>
|
||||
|
||||
<Component>
|
||||
If you do mix slots like this
|
||||
{#snippet foo()}
|
||||
<div >foo</div>
|
||||
{/snippet}
|
||||
you're a monster
|
||||
{#snippet bar()}
|
||||
<div >bar</div>
|
||||
{/snippet}
|
||||
</Component>
|
||||
|
||||
<Component >
|
||||
{#snippet foo()}
|
||||
<div >foo</div>
|
||||
{/snippet}
|
||||
{#snippet children({ omg })}
|
||||
{omg} WHY
|
||||
{/snippet}
|
||||
{#snippet bar()}
|
||||
<div >bar</div>
|
||||
{/snippet}
|
||||
</Component>
|
||||
|
||||
<Component >{#snippet children({ monster })}
|
||||
|
||||
If you do mix slots like this
|
||||
|
||||
you're a {monster}{/snippet}
|
||||
{#snippet foo()}
|
||||
<div >foo</div>
|
||||
{/snippet}
|
||||
{#snippet bar()}
|
||||
<div >bar</div>
|
||||
{/snippet}
|
||||
</Component>
|
||||
|
||||
<c-e>
|
||||
<div slot="named">unchanged</div>
|
||||
</c-e>
|
Loading…
Reference in new issue