【发布时间】:2021-01-30 21:38:02
【问题描述】:
我有一个场景,我需要向组件类提供信息,以便下游实例化可以使用该信息。
例如:
import { AComponent } from 'AComponent.svelte'
...
AComponent.classInfo = {something: somedata}
然后,组件可以访问该信息,如下所示:
<script>
let something = AComponent.classInfo.something
</script>
在这些问题中讨论的 V2(我正在使用 3)中提供这种功能似乎需要付出一些努力:Support Component Static Method #480,这导致了Added setup function which can supply static methods/properties. #572。
但是,扫描当前文档并没有发现这样的设置方法。那么,这从 V2 到 3 是否存在?如果没有,有什么方法可以做到这一点?
【问题讨论】:
-
为什么不创建一个 .js 文件,编写逻辑来为组件生成数据,然后从 js 文件中导入这个变量,在组件中,这样相同的数据将在所有人之间共享组件
-
是的,我可以做这样的事情,而且我可以。这是在一个外部组件库中,但仍然可以通过添加一个导出“setSomething()”函数的 .js 函数,然后库中的组件可以通过“getSomething()”访问“某物” ' 调用。
-
现在,我正在使用 sessionStorage 对象解决它。将“某物”存储在 sessionStorage 中,组件可以访问它。
-
这些方法都不是最优的 - 我宁愿将信息完全封装在组件定义中。
标签: javascript static-methods svelte-3