首页 > 解决方案 > 如何获得 Svelte 组件名称?

问题描述

如何从内部知道 Svelte 组件的名称?

.svelte 文件中的某处:

    <script>
    console.log('name of this component is', ...)
    </script>

用什么代替省略号?

标签: svelte

解决方案


您可以使用模块上下文脚本为 Svelte 组件命名:

<script context="module">
  const name = 'whatever you want';
</script>

<script>
  console.log('name of this component is', name);
</script>

内部代码<script context="module">运行一次,并且存在于组件的生命周期之外。更多文档:https ://svelte.dev/docs#script_context_module

还有其他方法吗?Svelte 组件被编译为类,但您无权访问它们(没有粗略的、脆弱的 hack)。此外,类没有稳定的方法来获得他们的名字。有constructor.name,但是当您缩小代码时,该名称可能会更改(更多信息请参见:如何获取 JavaScript 对象的类?)。所以上面的方法是最一致和“苗条”的方法。


推荐阅读