Dig*_*don 0 dynamic-import svelte-component svelte-3
我正在将 SvelteJs 与 svelte-spa-router 一起使用。
我有我的案例
<script>
import Component1 from './Component1.svelte'
import Component2 from './Component2.svelte'
</script>
{#if condition}
<Component1 {...props1} />
{:else}
<Component2 {...props2} />
{/if}
Run Code Online (Sandbox Code Playgroud)
我有更好的方法可以做到这一点吗?我可以仅在满足条件时动态导入和渲染组件吗?
我认为您需要做的就是所谓的“延迟加载”,即仅在需要渲染时才加载组件。
这个概念可以在 svelte 中使用,你只需要<svelte:component />andimport('')函数
// Component.svelte
<div>
Hello world
</div>
Run Code Online (Sandbox Code Playgroud)
让我们动态导入该组件
<script>
export let props = {}
export let condition = false
</script>
{#await import('./Component.svelte') then value }
<svelte:component this={value.default} {...props} />
{/await}
Run Code Online (Sandbox Code Playgroud)
让我们添加一个条件
{#if condition}
{#await import('./Component.svelte') then value }
<svelte:component this={value.default} {...props} />
{/await}
{/if}
Run Code Online (Sandbox Code Playgroud)
现在,只有满足条件,组件才会被导入
你检查一下这个REPL