美文网首页
Vue下svg图标打包后不显示的问题

Vue下svg图标打包后不显示的问题

作者: 道行者 | 来源:发表于2023-02-21 11:32 被阅读0次

Vue3,用svg文件做图标,开发环境下好好的,打包后图标不能显示。
原来的代码如下:

import svgIds from 'virtual:svg-icons-names'

  // 注册svg图标
  for (const i in svgIds) {
    app.component(svgIds[i], {
      data() {
        return {
          name: '#'+svgIds[i]
        }
      },
      template: `<svg class="icon"><use :xlink:href="name" /></svg>`
    })
  }

在开发环境下正常,打包后不能显示图标。改为如下代码:

import svgIds from 'virtual:svg-icons-names'
import { h } from 'vue'

  // 注册svg图标
  for (const i in svgIds) {
    app.component(svgIds[i], {
      name: svgIds[i],
      render() {
        return h('svg',
          { class: 'icon', 'aria-hidden': 'true'},
          h('use', {href:'#'+svgIds[i]})
        )
      }
    })
  }

将图标组件动态渲染生成,就可以了。

相关文章

网友评论

      本文标题:Vue下svg图标打包后不显示的问题

      本文链接:https://www.haomeiwen.com/subject/zhinkdtx.html