Svelte 命名空间组件导出

bor*_*ris 2 svelte-component svelte-3

在文档中有一个标签部分包含这样的内容:

小写标签(如<div>)表示常规 HTML 元素。大写的标签(例如<Widget><Namespace.Widget>)表示组件。

如何导出这样的<Namespace.Widget><Namespace.Whatever>

JHe*_*eth 10

所以我认为这指的是当您.svelte从一个.js文件导出多个文件并将它们全部导入到另一个组件的单个命名空间下时......它没有很好的记录,但它可以工作。

\n

如果您有以下项目结构:

\n
\xe2\x94\x80 src/\n  \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 child/\n  \xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 index.js\n  \xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 One.svelte\n  \xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 Two.svelte\n  \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 Parent.svelte\n
Run Code Online (Sandbox Code Playgroud)\n

导出child/index.js同一文件夹内的 2 个组件:

\n
\xe2\x94\x80 src/\n  \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 child/\n  \xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 index.js\n  \xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 One.svelte\n  \xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 Two.svelte\n  \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 Parent.svelte\n
Run Code Online (Sandbox Code Playgroud)\n

然后Parent.svelte导入单个命名空间下的所有组件,而不是导入每个单独的组件:

\n
export { default as One } from \'./One.svelte\'\nexport { default as Two } from \'./Two.svelte\'\n
Run Code Online (Sandbox Code Playgroud)\n

您可以像这样测试 REPL 中的功能https://svelte.dev/repl/18f41adb56fa46ff8b25cad7c1a388a4?version=3.38.3如果没有正确的文件结构,它就没有那么有用。

\n