vue3项目中引入阿里图标库

ops/2024/11/1 3:46:12/

开篇

本篇的主题是在vue3项目中引入阿里图标

步骤

注册阿里图标库账号(阿里图标),并创建项目

在这里插入图片描述

将图标加入项目中

  • 将需要的图标先加入购物车,随后加入到项目中
    在这里插入图片描述

生成项目代码

在项目中生成项目代码,便于后续复制到vue项目中
在这里插入图片描述## 在vue3项目中配置

  • 在App.vue中引入阿里图标库通用样式(只需要引入一次)
// 阿里图标库通用样式
.icon {width: 1em;height: 1em;vertical-align: -0.15em;fill: currentColor;overflow: hidden;
}
  • 在main.ts或main.js中,引入刚刚生成的项目代码

在这里插入图片描述

  • 按照需用封装一个通用的图标组件
<template><div v-if="isColorIcon || isSvgIcon"><svg :style="setIconSVGStyle" aria-hidden="true" class="icon"><use :xlink:href="'#icon-' + name"></use></svg></div><i v-else :class="getIconName" :style="setIconSvgStyle"/>
</template><script lang="ts" name="svgIcon" setup>
import {computed} from 'vue';// 定义父组件传过来的值
const props = defineProps({// svg 图标组件名字name: {type: String,},// svg 大小size: {type: Number,default: () => 14,},// svg 颜色color: {type: String,},//彩色colorIcon: {type: Boolean,default: false,},// 是否是阿里图标isSvg: {type: Boolean,default: false,}
});// 在线链接、本地引入地址前缀
// https://gitee.com/lyt-top/vue-next-admin/issues/I62OVL
const linesString = ['https', 'http', '/src', '/assets', 'data:image', import.meta.env.VITE_PUBLIC_PATH];// 获取 icon 图标名称
const getIconName = computed(() => {return 'iconfont icon-' + props?.name;
});
// 用于判断 element plus 自带 svg 图标的显示、隐藏
const isShowIconSvg = computed(() => {return props?.name?.startsWith('ele-');
});
// 用于判断在线链接、本地引入等图标显示、隐藏
const isShowIconImg = computed(() => {return linesString.find((str) => props.name?.startsWith(str));
});
// 设置图标样式
const setIconSvgStyle = computed(() => {return `font-size: ${props.size}px;color: ${props.color};`;
});
// 设置图片样式
const setIconImgOutStyle = computed(() => {return `width: ${props.size}px;height: ${props.size}px;display: inline-block;overflow: hidden;`;
});
// 设置图片样式
// https://gitee.com/lyt-top/vue-next-admin/issues/I59ND0
const setIconSvgInsStyle = computed(() => {const filterStyle: string[] = [];const compatibles: string[] = ['-webkit', '-ms', '-o', '-moz'];compatibles.forEach((j) => filterStyle.push(`${j}-filter: drop-shadow(${props.color} 30px 0);`));return `width: ${props.size}px;height: ${props.size}px;position: relative;left: -${props.size}px;${filterStyle.join('')}`;
});const setIconSVGStyle = computed(() => {return `width: ${props.size}px;height: ${props.size}px;display: inline-block;overflow: hidden;`;
});
//是否是彩色图标
const isColorIcon = computed(() => {return props.colorIcon;
});
// 是否是阿里图标
const isSvgIcon = computed(() => {return props.isSvg;
});
</script>
  • 在项目中使用该组件渲染图标
<SvgIcon :isSvg="true" :name="'row'"></SvgIcon>
  • 效果如下:
    在这里插入图片描述

值得一提的是,如果更新了项目中的图标,那么就需要更新图标项目的链接,并复制到vue3项目中。
感谢阅读!


http://www.ppmy.cn/ops/130021.html

相关文章

高效集成聚水潭·奇门数据到MySQL的技术方案

聚水潭奇门数据集成到MySQL的技术案例分享 在本次技术案例中&#xff0c;我们将探讨如何通过轻易云数据集成平台&#xff0c;将聚水潭奇门的售后单数据高效、可靠地集成到MySQL数据库中。具体方案为“聚水潭-售后单-->BI虹盟-售后表”。这一过程不仅需要处理大量的数据&…

第二十章 Vue组件通信之父子通信

目录 一、引言 二、组件关系分类 三、组件通信的解决方案 3.1. 父子通信流程图 3.2. 父组件通过 props 将数据传递给子组件 3.2.1. 代码App.vue 3.2.2. 代码MySon.vue 3.3. 子组件利用 $emit 通知父组件修改更新 ​编辑3.3.1. 代码App.vue 3.3.2. 代码MySon.vue 3…

C++游戏开发中的多线程处理是否真的能够显著提高游戏性能?如果多个线程同时访问同一资源,会发生什么?如何避免数据竞争?|多线程|游戏开发|性能优化

目录 1. 多线程处理的基本概念 1.1 多线程的定义 1.2 线程的创建与管理 2. 多线程在游戏开发中的应用 2.1 渲染与物理计算 3. 多线程处理的性能提升 3.1 性能评估 3.2 任务分配策略 4. 多线程中的数据竞争 4.1 数据竞争的定义 4.2 多线程访问同一资源的后果 4.3 避…

安卓多点触控

对于普通的点击事件&#xff0c;调用View对象的setOnClickListener()方法注册点击事件的监听即可&#xff0c;但是如果要处理更加复杂的触控事件时&#xff0c;这种方式就无法满足我们的要求了&#xff0c;此时我们就可以监听所有触摸事件&#xff0c;自行处理触摸事件。 1. 注…

谷歌seo发外链真的能提升排名吗?

那肯定是可以的&#xff0c;但很多SEO新人总以为&#xff0c;只要发几条外链&#xff0c;排名就会蹭蹭往上涨。这样的想法太过理想化了。虽然外链确实是提升排名的重要因素之一&#xff0c;但这并不意味着你随便发几条外链就能见效 优质的外链重要&#xff0c;但前提你能找到多…

GFF: Gated Fully Fusion for Semantic Segmentation门控融合语义分割-论文阅读笔记

摘要&#xff1a; 语义分割通过对每个像素密集预测其类别&#xff0c;生成对场景的全面理解。深度卷积神经网络的高级特征已经在语义分割任务中证明了它们的有效性&#xff0c;然而高级特征的粗分辨率经常导致对小/薄物体的结果不佳&#xff0c;而这些物体的细节信息非常重要。…

多浏览器同步测试工具的设计与实现

在做Web兼容测试时&#xff0c;测试人员往往需要在不同浏览器上重复执行相同的操作。 现有自动化录制手段&#xff0c;其实是后置的对比&#xff0c;效率与反馈都存在延迟&#xff0c;执行过程相对是黑盒的&#xff0c;过程中如果测试人员没细化到具体的校验点&#xff0c;即使…

JVM 类加载器

字节码的结构 魔数u4 cafe babe 版本u4 52 java8 常量池计数器u2 从1开始&#xff0c;0索引留给不需要的情况 常量池 表 #1 -> #计数器-1 类标识符 u2 public final abstrat class annotion interface 之类 类索引u2 名字 父类索引u2 父类名字 接口计数器 u2 接口数…