如何创建自己的组件以渲染元素加上图标?

发布于 2025-01-21 09:34:28 字数 537 浏览 1 评论 0原文

在element-plus中,我们已经拥有图标,例如&lt; i-mdi-edit /&gt; < /code>

如何使用这些图标,以便我可以创建自己的组件

&lt; icon name =“ edit” /&gt;

,然后我传递了名称属性,以便我可以将图标

ICON组件如下所示;


<script setup lang="ts">
import { ref } from "vue";

let props = withDefaults(defineProps<{ name: string }>(), {
      name: "edit",
});

let component = ref(`i-mdi-${props.name}`);
</script>

<template>
   <component :is="component" />
</template>

In element-plus we already have icons for example <i-mdi-edit />

how can use these icons so i can create my own component

<Icon name="edit" />

and i pass the name property so i can get the icon

my Icon component as follows;


<script setup lang="ts">
import { ref } from "vue";

let props = withDefaults(defineProps<{ name: string }>(), {
      name: "edit",
});

let component = ref(`i-mdi-${props.name}`);
</script>

<template>
   <component :is="component" />
</template>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

终弃我 2025-01-28 09:34:28

您可以使用“ nofollow noreferrer”>“动态组件” 为此。
例如,在您的情况下,假设您有name prop已注册,则可以使用以下内容:

<component :is="`i-mdi-${name}`"></component>

edit:既然您提到了元素plus plus,请参见a

You can use dynamic components for that.
For example, in your case, and assuming you have the name prop registered, you can use something like:

<component :is="`i-mdi-${name}`"></component>

Edit: Since you mentioned element plus, here is a working example. However, in this case, it seems a bit redundant to do like you want.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文