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

如何在自定义SVG图形中使用指定名称的Material Design Icon图标

问题解答

问题1:应该使用哪个SVG基础标签实现需求?

优先选择<path>标签,具体选型说明如下:

  • 排除<text>:mdi-arrow-left-circle是图标标识名称,并非可渲染的文本字符,用text标签无法输出对应图形。
  • 不推荐<img>:将图标作为外部图片嵌入的方案,无法和当前自定义SVG的样式(填充色、描边等)联动,也会额外增加资源请求,性能和灵活度都不高。
  • 最优选择<path>:所有MDI图标本质都是基于24*24画布的矢量路径,直接使用path标签渲染对应路径,既可以保证和v-icon组件内的图标完全一致,也能完美适配自定义SVG的样式控制需求。

问题2:如何通过mdi-arrow-left-circle名称获取对应图标内容?

你可以通过两种方式获取对应图标的路径数据:

方式1:通过@mdi/js包导入(推荐)

如果你的项目已经安装了@mdi/js依赖,直接导入对应图标即可,导入的变量就是图标对应的path数据:

import { mdiArrowLeftCircle } from '@mdi/js'

方式2:通过Vuetify内置能力获取

如果不想额外安装依赖,也可以直接调用Vuetify的内置图标对象读取路径:

const iconPath = this.$vuetify.icons.values.mdiArrowLeftCircle

完整实现示例

注意你示例代码中的<rec>是笔误,正确矩形标签为<rect>,完整可运行的代码如下:

<template>
  <!-- 自定义100*100画布 -->
  <svg viewBox="0 0 100 100">
    <rect x="0" y="0" width="100" height="100" stroke="grey" fill="none" />
    <!-- 调整MDI图标坐标和缩放,适配画布居中显示 -->
    <g transform="translate(10 10) scale(3.33)">
      <path :d="mdiArrowLeftCircle" fill="red" />
    </g>
  </svg>
</template>

<script>
import { mdiArrowLeftCircle } from '@mdi/js'

export default {
  data() {
    return {
      mdiArrowLeftCircle
    }
  }
}
</script>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:15:04