ric*_*ckb 6 javascript static-methods svelte-3
我有一个场景,我需要向组件类提供信息,以便下游实例化可以使用该信息。
例如:
import { AComponent } from 'AComponent.svelte'
...
AComponent.classInfo = {something: somedata}
Run Code Online (Sandbox Code Playgroud)
然后,该组件可以访问该信息,如下所示:
<script>
let something = AComponent.classInfo.something
</script>
Run Code Online (Sandbox Code Playgroud)
似乎在 V2 中提供此类功能(我正在使用 3)方面做出了一些努力,这些问题已在这些问题中进行了讨论:支持组件静态方法 #480,这导致添加了可以提供静态方法/属性的设置功能。第572章
然而,扫描当前文档发现没有这样的设置方法。那么,这是否从 V2 到 3 都存在?如果没有,是否有办法做到这一点?
您可以在模块脚本块中定义不特定于实例的静态属性
<script context="module">
export const someValue = 123
</script>
<script>
// Normal component stuff
</script>
Run Code Online (Sandbox Code Playgroud)
然后直接从组件文件中导入:
import { someValue } from './MyComponent.svelte'
Run Code Online (Sandbox Code Playgroud)
请注意,这是该组件的所有实例之间共享的值。
至少在 v3.32 版本中,无法在 Svelte 组件中定义静态属性。只能进行命名导出。
我知道的唯一解决方法是使用自定义 webpack 加载器/汇总插件,并且实现从来都不是很漂亮。