You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Svelte组件内部获取当前组件的名称?

Svelte组件内部获取自身名称的实现方法

Svelte属于编译型框架,默认不会在运行时保留原始组件名称的元数据,没有公开的开箱即用API直接获取该值,对应你给出的代码示例,不同场景的填写方案如下:

开发调试场景(仅开发环境可用)

你可以依赖Svelte的内部API直接获取,省略号位置替换为如下逻辑即可:

<script>
import { get_current_component } from 'svelte/internal'

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

注意:get_current_component属于Svelte非公开的内部API,生产环境构建时组件类名会被压缩为短字符,最终拿到的名称会是类似a、b的无效值,该方案仅适合本地开发调试使用。

全环境稳定可用场景

如果需要在生产环境也能稳定拿到正确的组件名,最稳妥的方式是显式声明组件名称,省略号位置直接填写你定义的常量即可:

<script>
// 常量值和组件名保持一致即可
const CURRENT_COMPONENT_NAME = 'DemoComponent'
console.log('name of this component is', CURRENT_COMPONENT_NAME)
</script>

如果项目组件数量多,不想手动重复声明,可以自行编写编译插件(Vite/Rollup插件),在编译阶段根据.svelte文件的文件名自动注入组件名称变量,后续所有组件都可以直接读取该全局注入的变量即可。

内容的提问来源于stack exchange,提问作者geometer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 01:39:03