首页 > 其他分享 >vue2项目中引入svg图标

vue2项目中引入svg图标

时间:2023-08-03 13:34:07浏览次数:37  
标签:index vue 文件 svg vue2 图标 svgIcon icon

vue 版本  vue: "^2.6.11"

1. 下载对应的svg 依赖

npm install svg-sprite-loader --save-dev

2. 创建svgIcon 文件夹

文件夹下对应3个文件

svg 文件夹:存放svg 文件

index.js 文件:vue 挂载svg

index.vue文件: 封装的svg文件

 3. index.js 文件

全局挂载到vue上

1 import Vue from "vue";
2 import svgIcon from "./index.vue";
3 
4 Vue.component('svg-icon', svgIcon)  //挂载全局组件
5 //下面这个是导入svgIcon/svg下的所有svg文件
6 const requireAll = requireContext => requireContext.keys().map(requireContext)
7 const req = require.context('./svg', false, /\.svg$/)
8 requireAll(req);

4. index.vue文件

 1 <template>
 2   <svg :class="svgClass" aria-hidden="true">
 3     <use :xlink:href="iconName" />
 4   </svg>
 5 </template>
 6   
 7   <script>
 8 export default {
 9   name: "SvgIcon",
10   props: {
11     iconClass: {
12       type: String,
13       required: true,
14     },
15     className: {
16       type: String,
17       default: "",
18     },
19   },
20   computed: {
21     iconName() {
22       return `#icon-${this.iconClass}`;
23     },
24     svgClass() {
25       if (this.className) {
26         return "svg-icon " + this.className;
27       } else {
28         return "svg-icon";
29       }
30     },
31   },
32 };
33 </script>
34   
35   <style scoped>
36 .svg-icon {
37   width: 1em;
38   height: 1em;
39   vertical-align: -0.15em;
40   fill: currentColor;
41   overflow: hidden;
42 }
43 </style>

注意:iconClass 为对应 svg 的名称

5. 页面引用

<svg-icon :iconClass="'svgName'" :className="'SvgNameClass'" /> svgName                为svgName.svg 文件名 SvgNameClass      为当前svg-cion的类名

标签:index,vue,文件,svg,vue2,图标,svgIcon,icon
From: https://www.cnblogs.com/PengZhao-Mr/p/17603080.html

相关文章

  • PHPGD库如何使用SVG格式进行图像处理
    使用PHPGD库进行图像处理是PHP编程开发中常用的技术,而将其与SVG格式结合使用可以使图像处理更加灵活、高效和美观。本篇文章将围绕PHPGD库如何使用SVG格式进行图像处理展开探讨。一、什么是SVG格式?PHPGD库如何使用SVG格式进行图像处理SVG是可缩放矢量图形(ScalableVectorGra......
  • 不忘初心 Windows11 Insider Preview 25915.1000 Canary预览版 无更新 纯净精简 2023.
    此版不能更新补丁,并开启按流量计费,此版保留Hyper和linux,让人期待的任务栏图标从不合并功能此版已经回归,母版来自UUPWindows11InsiderPreview25915.1000Canary频道预览版,本版本自动跳过硬件检测,优化后台进程和服务,精简一些日常不常用的组件,速度和性能比原版更胜一筹,为了保证稳......
  • 分享一组矢量图标–UX图标字体库
    科技日新月异的今天,市面上各种分辨率、各种显示精度的显示设备层出不穷,在不同精度不同分辨率的显示设备下图标的应用展现出现了不同要求;如设计师为iphone3gs设计的图标在iphone4下的展现就显得很糟糕了。我们为pc端产品设计的图标到平板电脑上显示(newipad)上展现就不尽人意了......
  • 智慧校园源码:vue2+Java+springboot+MySQL+elmentui+jpa+jwt
    智慧校园综合管理云平台源码系统主要以校园安全、智慧校园综合管理云平台为核心,以智慧班牌为学生智慧之窗,以移动管理平台、家校沟通为辅。教师—家长一学校—学生循环的无纸化管理模式及教学服务,实现多领域的信息互联互通以及校园管理一体化、信息数据化、数据自动化。智慧班牌融合......
  • 界面控件DevExpress BI Dashboard v23.1——支持全新的图标趋势指标
    DevExpress BIDashboardv23.1支持在Dashboard图表项中使用趋势指标,趋势指标有助于传达一段时间内的数据趋势——允许用户发现模式并更有效地分析复杂的数据集。使用DevExpressAnalyticsDashboard,再选择合适的UI元素(图表、数据透视表、数据卡、计量器、地图和网格),删除相应参......
  • VUE3、ElementPlus 重构若依vue2 表单构建功能
    Vue3+ElementPlus+Vite重构若依Vue2表单构建功能若依官方的Vue3版本发布已经有段时间了,就是这个表单构建功能一直没有安排计划去适配到Vue3!前段时间公司需要做个类似的功能,就直接借鉴若依Vue2的来直接改了吐槽下:vuedraggable-vue3坑真多,官方文档一言难尽,现在不推荐使......
  • 坑:vue2在props时仅接受第一次返回数据的解决办法
    今天在做项目时遇到了一个bug,在列表页进入详情页时带入list以便子组件遍历使用,使用props传参,该list在父组件由created生命周期函数访问接口获取,然后子组件在使用时,直接使用props接收并调用,大概代码如下://父组件<Child:list='list'/>...created(){getListApi().then(list......
  • 小米/红米关闭VoLTE图标(信号旁的HD),以K50为例
    原文:https://zhuanlan.zhihu.com/p/508684071  小米/红米关闭VoLTE图标(信号旁的HD),以K50为例行也思君夜深知雪重,时闻折竹声 45人赞同了该文章新版小米系统中应运营商要求已经隐藏了VoLTE功能的开关,如果使用卡2做为上网卡,HD图标会出现在......
  • vue2集成simple-mind-map思维导图,实现在线制作思维导图
    1.使用组件组件源码版本licensesimple-mind-map地址0.6.6MIT@toast-ui/editor地址3.1.5MITv-viewer地址1.6.4MITxlsx地址0.18.5Apache-2.0vue-i18n地址8.27.2MIT2.组件结构(部分)3.截图4.示例项目项目一:gitee......
  • vue2集成bpmn流程图,可导入导出预览等
    1.使用到的组件组件源码版本licensebpmn-js地址7.3.1bpmn.iobpmn-js-properties-panel地址0.37.2MITcamunda-bpmn-moddle地址4.5.0MIT版本一定要对,否则可能会报错2.组件代码<template><divid="app"><divclass="container">......