[svg-icon]引入vue项目后,use标签为0,已解决

news2024/11/15 15:59:06

这个bug我之前遇到过一次,解决了也就没记录

但是好记性不如烂笔头,这次重新遇到,又重新排查bug花了1个多小时

svg引入vue项目,需要依赖svg-sprite-loader

npm install  svg-sprite-loader

在vue.config.js中

chainWebpack(config) {
    config.plugins.delete("preload"); // TODO: need test
    config.plugins.delete("prefetch"); // TODO: need test

    // set svg-sprite-loader
    config.module
      .rule("svg")
      .exclude.add(resolve("src/assets/icons"))
      // .add(resolve("src/assets/icons"))//如果还有其他文件夹下有,就add增加
      .end();
    config.module
      .rule("icons")
      .test(/\.svg$/)
      .include.add(resolve("src/assets/icons"))
      // .add(resolve("src/assets/icons"))
      .end()
      .use("svg-sprite-loader")
      .loader("svg-sprite-loader")
      .options({ symbolId: "icon-[name]" })
      .end();

  },

在assets下新建icons文件夹
在这里插入图片描述
对应 的index.js

import Vue from "vue";
import SvgIcon from "@/components/SvgIcon"; // svg component

// register globally
Vue.component("svg-icon", SvgIcon);

const req = require.context("./svg", true, /\.svg$/);
const requireAll = (requireContext) =>
  requireContext.keys().map(requireContext);
requireAll(req);

在components文件夹下新建SvgIcon文件夹
在这里插入图片描述
对应的index.vue

<template>
  <svg :class="svgClass" aria-hidden="true" v-on="$listeners">
    <use :xlink:href="iconName" />
  </svg>
</template>

<script>
export default {
  name: "SvgIcon",
  props: {
    iconClass: {
      type: String,
      required: true,
    },
    className: {
      type: String,
      default: "",
    },
  },
  computed: {

    iconName() {
      return `#icon-${this.iconClass}`;
    },
    svgClass() {
      if (this.className) {
        return "svg-icon " + this.className;
      } else {
        return "svg-icon";
      }
    },
    styleExternalIcon() {
      return {
        mask: `url(${this.iconClass}) no-repeat 50% 50%`,
        "-webkit-mask": `url(${this.iconClass}) no-repeat 50% 50%`,
      };
    },
  },
};
</script>

<style scoped>
.svg-icon {
  width: 1em;
  height: 1em;
  vertical-align: -0.15em;
  fill: currentColor;
  overflow: hidden;
}

.svg-external-icon {
  background-color: currentColor;
  mask-size: cover !important;
  display: inline-block;
}
</style>

在main.js中全局挂载

import "@/assets/icons"; // icon
import "@/components/SvgIcon"; // 自定义组件引入

具体页面中使用

            <svg-icon icon-class="logo" />

use标签为0的主要原因是vue.config.js中没有配置对应的svg-sprite-loader

备注:svg标签一般都是ui直接给,如果需要自己定义,新建text文档,将内容复制后,更改尾缀为.svg即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/498647.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NOC大赛·核桃编程马拉松赛道知识点大纲(高年级及初中组)

NOC核桃编程马拉松知识点大纲(高年级及初中组) (一)基础语法 1.掌握运动积木的用法。 包括“移动 10 步”、“左/右转 X 度”、“面向 X 方向/鼠标指针/ 角色”、“移到 XY 坐标/鼠标/角色”、“X/Y 坐标的设定和增加”、 “滑行到 XY/鼠标/角色”等积木用法,详细如下。 1…

【数据结构】链表OJ:力扣160. 相交链表

最近这几篇内容都有关链表&#xff0c;接下来几篇内容会分享一些链表的OJ题&#xff0c;希望对你有所帮助。 今天要分享的内容是力扣160. 相交链表&#xff1a;160. 相交链表 - 力扣&#xff08;LeetCode&#xff09; 目录 题目&#xff1a; 题解 题目&#xff1a; 给你…

数据分析02——numpy模块的在jupyter中的使用

0、numpy&#xff1a; 在计算机中会把数学当中的矩阵叫做数组&#xff0c;在很多应用中的表格也就是通过矩阵表示的&#xff0c;所以numpy广泛用于机器学习&#xff0c;数据分析&#xff0c;和图像处理领域。 1、numpy常用方法和函数&#xff1a; 前言&#xff1a;在使用nump…

腾讯云轻量应用服务器使用限制说明(十大限制)

腾讯云轻量应用服务器和云服务器CVM相比具有一些限制&#xff0c;比如轻量服务器不支持更换内网IP地址&#xff0c;轻量服务器只能套餐整体升级且不支持降配&#xff0c;轻量不支持用户自定义配置私有网络VPC&#xff0c;还有如实例配额、云硬盘配额、备案限制和内网连通性等限…

Ububtu20.04 无法连接外屏(显卡驱动问题导致)

Ububtu20.04 无法显示第二个屏幕&#xff08;显卡驱动问题&#xff09; Ububtu20.04 无法显示第二个屏幕&#xff08;显卡驱动问题&#xff09; Ububtu20.04 无法显示第二个屏幕&#xff08;显卡驱动问题&#xff09; 1. 问题描述2. 解决方案 1. 问题描述 一开始我的ububt…

JavaGuide复习1——常见面试题总结部分

1、关于包装类的缓存机制 两种浮点数类型的包装类 Float,Double 并没有实现缓存机制。 对应源码&#xff1a; 拆装箱 都是调用了包装类的方法&#xff1a;valueOf&#xff08;基本转包装&#xff09;、xxxValue&#xff08;包装转基本&#xff09; 注意char char在Java中占用…

Illustrator如何进行文本的创建与编辑之实例演示?

文章目录 0.引言1.创建点文字2.串接文本3.石刻文字 0.引言 因科研等多场景需要进行绘图处理&#xff0c;笔者对Illustrator进行了学习&#xff0c;本文通过《Illustrator CC2018基础与实战》及其配套素材结合网上相关资料进行学习笔记总结&#xff0c;本文对文本的创建与编辑进…

shell脚本编程基础

shell 文件的建立和执行 shell脚本是将shell命令在文件中编写&#xff0c;从而实现一次执行很多shell命令。如&#xff1a; # ab.sh # !/bin/bash echo "Welcome Linux" cd mkdir myjsjsj echo "Your dir is" pwd可以看到这就是多个shell命令。 执行前需…

【数据结构】选择排序(详细)

选择排序 1. 直接选择排序2. 堆排序2.1 堆2.2 堆的实现&#xff08;以大根堆为例&#xff09;2.3 堆排序 3. 堆排序&#xff08;topK问题&#xff09; 1. 直接选择排序 思想 以排升序为例。以a[i]为最大值&#xff08;或最小值&#xff09;&#xff0c;从a[i1]到a[n-1-i]比较选…

【5G RRC】NR 小区接入控制

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

Wind10安装cuDNN,几分钟搞定

cuDNN的安装过程 1、下载cuDNN 因为之前的博文“目标检测第3步”下载的CUDA版本是11.1&#xff0c;那么我们就要找到与CUDA11.1版本对应的cuDNN版本。地址为&#xff1a;cuDNN Archive | NVIDIA Developer 2、安装cuDNN 下载到的cuDNN文件是一个压缩包&#xff0c;解压缩之后…

并发编程03:Java锁

文章目录 3.1 乐观锁和悲观锁3.2 通过8种情况演示锁运行案例&#xff0c;看看锁到底是什么3.2.1 锁相关的8种案例演示code3.2.2 synchronized有三种应用方式3.2.3 从字节码角度分析synchronized实现3.2.4 反编译synchronized锁的是什么3.2.5 对于Synchronized关键字 3.3 公平锁…

创维高安版-E900-Hi3798MV100-强刷卡刷固件包-当贝纯净桌面

创维高安版-E900-Hi3798MV100-强刷卡刷固件包-当贝纯净桌面-内有主板图短接点和教程 特点&#xff1a; 1、适用于对应型号的电视盒子刷机&#xff1b; 2、开放原厂固件屏蔽的市场安装和u盘安装apk&#xff1b; 3、修改dns&#xff0c;三网通用&#xff1b; 4、大量精简内置…

关于百度地图开放平台api覆盖物“自定义Marker图标”不能正常显示的解决方案

“自定义Marker图标”不能正常显示&#xff08;用网上图片能正常显示&#xff0c;用本地图片就不能显示&#xff09;&#xff0c; 分两种情况&#xff1a; 1.网上图片&#xff0c;往往是图片的url地址有问题&#xff0c;也可能是url地址的图片失效了。 2.本地图片&#xff0c;这…

linux软件包管理和进程管理

目录标题 RPM管理工具rpm安装rpm查询功能rpm软件包升级、卸载 YUM管理工具建立本地光盘源配置互联网源yum工具管理软件包 ps指令动态查看进程top RPM管理工具 软件包&#xff08;本地–网络&#xff09;—安装&#xff08;软件包&#xff09;—卸载&#xff08;软件&#xff0…

【Python】【进阶篇】24、Django if标签详解

目录 24、Django if标签详解1. 模板标签1) 判断逻辑的 if 标签 24、Django if标签详解 本节继续讲解 Django 的模板语言&#xff0c;Django 内置了许多标签用于简化模板的开发过程&#xff0c;同时 Django 也支持自定义标签&#xff0c;这极大的方便了 Web开发者&#xff0c;下…

拓展系统变量

文章目录 拓展系统变量 使用方式拓展系统变量获取服务端IP - $ZSERVERIP获取客户端IP - $ZCLIENTIP获取最大许可数量 - $ZMAXLICENSE获取当前系统名称 - $ZOSNAME获取字符串最大长度 - $ZMAXSTRINGLEN获取当前登录用户ID - $ZUSERID获取当前登录用户名 - $ZUSERNAME系统最近错误…

【Linux从入门到精通】C语言模拟实现进度条小程序

在Linux下&#xff0c;我们安装软件时会经常看到进度条&#xff0c;来告知我们安装的进度。我们不妨自己模拟实现一个进度条&#xff0c;看看其中的细节。模拟实现进度条并不困难&#xff0c;但其中的细节我们又不可忽视。本篇文章会对模拟实现进度条进行详解。 文章目录 一、进…

顺序表(数据结构)---排队啦!

目录 前言&#xff1a; 1.线性表的性质 2.静态数组or动态数组 2.1静态数组 2.2动态数组 3.结构体的创建 4*接口函数的详细讲解 4.1初始化结构体 4.2尾插 4.3打印数据 4.4用完后销毁创建的堆空间 4.5 尾删 4.6头插 4.7头删 4.8查找 4.9任意位置插入 4.10任意位…

springboot+jsp商务安全邮箱(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot商务安全邮箱。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&#xff1a;风歌&…