Vue项目中如何使用图标组件库

vue项目中如何使用SVG图标-CSDN博客这是上一个如何使用SVG图标,自由的从图标库下载图标进行增删改等操作固然很方便,但是也暴露出一些小小的不足,那就是任意的图标使用可以造成图标风格的不统一,从而影响整个项目的用户体验。

因为我们在进行图标下载的时候,有可能是从IconFont图标网站上,不同的图标项目库中进行分别的下载,如何堆积在当前自己的项目中,那么图标的大小,色彩,风格等样素可想而知也必然存在一定的差异。

那么是否有一种方式可以解决该问题。IconFont图标组件库由此而诞生了。

Icon Library:图标库包含一系列标准化图标资源的库,通常用于帮助设计师等开发人员快速选择和使用各种图标。iconLibrary

为什么要使用图标类库,是因为它具有一些优势特点,比如:

  1. 提高效率:图标库中已经有大量的标准化图标,使设计师和开发人员可以直接使用,避免了重复设计的时间浪费。
  2. 统一风格:使用图标库的图标可以保证图标风格的一致性,提高应用的整体美观度和用户体验。
  3. 节省成本:使用图标库可以节省设计师和开发人员的成本,减少制作自定义图标的开销。
  4. 可维护性:图标库中的图标通常都是标准化的,易于维护和更新。可以避免因为图标变更带来的维护成本。

当然,图标库也不完善,也有一些不足,比如:

  1. 依赖外部资源:需要从外部下载图标库可能会导致应用加载速度变慢。
  2. 无效资源的引入:图标库中包含的资源可能成百上千,但项目中使用的图标只有几个几十个,更多引入的图标资源被浪费,占用了项目的空间,影响了性能。
  3. 风格受限:图标库中的图标都是标准化的,如果要使用非标准的图标,则需要自己设计。
  4. 版权问题:一些图标库可能会有版权问题,需要注意版权问题。
  5. 可能无法满足需求:虽然图标库中有大量的图标可供选择,但是并不一定能满足应用的需求。

所以,我们在考虑使用图标库的时候,还是需要进行项目合理性考量。

那么常见的图标库有:ionicons    Ant Design    Element    Material Design Icons

Ionicons: Premium Open Source Icon Pack for Ionic Framework

Material Design Icons - Icon Library - Pictogrammers

Icon 图标 | Element Plus

图标 Icon - Ant Design

第一步:安装(项目是vite环境vue3项目中)

npm i @element-plus/icons-vue -S

第二步:在main.ts入口文件

在该文件中将模块中其所有图标内容进行统一性加载。

并且利用for循环进行遍历,将遍历出的所有图标进行全局组件的公共注册即可。

import { createApp } from "vue";
import "./style.css";
import App from './App.vue';
import * as ElementPlusIconVue from "@element-plus/icon-vue";
const app = createApp(App);
for (const [key,component] ofObject.entries(ElementPlusIconVue)) {app.component(key,component);}
app.mount("#app");

第三步:使用

可以在页面或组件中进行图标的直接调用,并设置其宽高等样式

<template><Edit style="width: 1rem" />
</template>

那么以上则是element-plus的应用,我们根据以上内容,可以对其他图标进行举一反三,antd-design的图标操作也是相似的。

第一步:安装npm i @ant-design/icon-vue -S

npm i @ant-design/icon-vue -S

第二步:在main.ts入口文件

import { createApp } from "vue";
import "./style.css";
import App from './App.vue';
import * as ElementPlusIconVue from "@element-plus/icon-vue";
import * as AntDesignIconsValue from "@ant-design/icons-vue";const app = createApp(App);
for (const [key,component]of Object.entries(ElementPlusIconVue)) {app.component(key,component);}for (const [key,component]of Object.entries(AntDesignIconsValue)){console.log(key);app.component(key,component);}app.mount("#app");

第三步:使用

可以在页面或组件中进行图标的直接调用,并设置其字体大小等样式

<template><Edit style="width: 1rem" /><UserDeleteOutlined style="font-size: 48px" />
</template>

至于像ionicons更为简单,只需要在index.html中引入一个js脚本,就可以在页面中使用<ion-icon />标签进行应用

第一步:引入js脚本

<script type="module" src="https://unpkg.com/ionicons@5.5.2/dist/ionicons/ionicons.esm.js"></script>

第二步:使用

<template><ion-iconname="heart"size="large" />
</template>

需要注意:不管那种图标类库,如果图标库中并不存在想要使用的图标对象,那么暂时是没办法进行自定义图标扩展应用的。

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

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

相关文章

深入浅出 diffusion(3):pytorch 实现 diffusion 中的 U-Net

导入python包 import mathimport torch import torch.nn as nn import torch.nn.functional as F silu激活函数 class SiLU(nn.Module): # SiLU激活函数staticmethoddef forward(x):return x * torch.sigmoid(x) 归一化设置 def get_norm(norm, num_channels, num_groups)…

TensorRT英伟达官方示例解析(一)

系列文章目录 TensorRT英伟达官方示例解析&#xff08;一&#xff09; TensorRT英伟达官方示例解析&#xff08;二&#xff09; TensorRT英伟达官方示例解析&#xff08;三&#xff09; 文章目录 系列文章目录前言一、参考资料二、配置系统环境三、00-MNISTData四、01-SimpleD…

银行数据仓库体系实践(4)--数据抽取和加载

1、ETL和ELT ETL是Extract、Transfrom、Load即抽取、转换、加载三个英文单词首字母的集合&#xff1a; E&#xff1a;抽取&#xff0c;从源系统(Souce)获取数据&#xff1b; T&#xff1a;转换&#xff0c;将源系统获取的数据进行处理加工&#xff0c;比如数据格式转化、数据精…

Spring Cloud组件

1.nacos&#xff08;Naming and Configuration Service&#xff09;&#xff1a;服务发现、管理、配置 2.Spring cloud常用组件 2.1注册中心 nacos 注册中心分为客户端和服务端&#xff0c;它们之间存在心跳&#xff0c;客户端停止&#xff0c;服务端会报错 客户端&#xff…

【labVIEW】学习记录

【labVIEW】学习记录 一、简介二、安装及激活三、使用 回到目录 一、简介 labVIEW&#xff08;Laboratory Virtual Instrument Engineering Workbench&#xff09;是一款由美国国家仪器公司&#xff08;National Instruments&#xff09;开发的可视化编程环境和开发平台。LabV…

Dubbo 3.x:探索阿里巴巴的开源RPC框架新技术

摘要&#xff1a;随着微服务架构的兴起&#xff0c;远程过程调用&#xff08;RPC&#xff09;框架成为了关键组件。Dubbo&#xff0c;作为阿里巴巴的开源RPC框架&#xff0c;已经演进到了3.x版本&#xff0c;带来了许多新特性和技术改进。本文将探讨Dubbo 3.x中的一些最新技术&…

dockerfile不可以使用../作为路径在上级目录查找文件

在 Dockerfile 中&#xff0c;不能直接使用 …/ 跳转到上级目录。Dockerfile 中的路径是相对于构建上下文路径的&#xff0c;而构建上下文指定了在构建镜像时可访问的文件和目录的范围。 如果你需要在 Dockerfile 中引用上级目录中的文件或目录&#xff0c;可以将上级目录作为…

3.3 实验三:以太网链路聚合实验

HCIA-Datacom实验指导手册&#xff1a;3.3 实验三&#xff1a;以太网链路聚合实验 一、实验介绍&#xff1a;二、实验拓扑&#xff1a;三、实验目的&#xff1a;四、配置步骤&#xff1a;步骤 1 掌握使用手动模式配置链路聚合的方法步骤 2 掌握使用静态 LACP 模式配置链路聚合的…

考研机试 特殊排序

特殊排序 描述 输入一系列整数&#xff0c;将其中最大的数挑出(如果有多个&#xff0c;则挑出一个即可)&#xff0c;并将剩下的数进行排序&#xff0c;如果无剩余的数&#xff0c;则输出-1。 输入描述&#xff1a; 输入第一行包括1个整数N&#xff0c;1<N<1000&#xff…

【JavaEE进阶】 数据库连接池与MySQL企业开发规范

文章目录 🌴数据库连接池🎋数据库连接池的使用🎄MySQL企业开发规范⭕总结🌴数据库连接池 数据库连接池负责分配、管理和释放数据库连接,它允许应⽤程序重复使⽤⼀个现有的数据库连接,⽽不是再重新建⽴⼀个. 没有使⽤数据库连接池的情况:每次执⾏SQL语句,要先创建⼀…

JavaScript学习-let、var、const的使用

let、var、const的使用 1.var var声明的变量会被提升到该作用域的顶部&#xff0c;若声明在函数内部&#xff0c;则他作用域在整个函数内部&#xff0c;即使他在函数末尾声明&#xff0c;在函数第一行也可以使用。声明在全局也是一样的。var不能声明常量&#xff0c;因为var可…

Linux系统——函数与数组

目录 一、函数 1.函数的定义 2.使用函数 3.定义函数的方法 4.函数举例 4.1判断操作系统 4.2判断ip地址 5.查看函数列表 6.删除函数 7.函数返回值——Return 8.函数的作用范围 9.函数传参 10.函数递归 10.1病毒 10.2阶乘 10.2.1 用for循环 10.2.2函数阶乘 10.…

Python实战项目Excel拆分与合并——合并篇

在实际工作中&#xff0c;我们经常会遇到各种表格的拆分与合并的情况。如果只是少量表&#xff0c;手动操作还算可行&#xff0c;但是如果是几十上百张表&#xff0c;最好使用Python编程进行自动化处理。下面介绍两种拆分案例场景&#xff0c;如何用Pandas实现Excel文件的合并。…

模型训练trick篇

损失函数 分类任务 0-1损失函数绝对值损失函数&#xff0c;指数损失函数exponenetial loss&#xff0c;&#xff0c;例如adaboost感知损失函数perceptron loss&#xff0c;&#xff0c;合并损失函数Hinge loss&#xff0c;&#xff0c;例如SVM交叉熵损失函数crossEntropy&…

ELK日志解决方案

ELK日志解决方案 ELK套件日志系统应该是Elasticsearch使用最广泛的场景之一了&#xff0c;Elasticsearch支持海量数据的存储和查询&#xff0c;特别适合日志搜索场景。广泛使用的ELK套件(Elasticsearch、Logstash、Kibana)是日志系统最经典的案例&#xff0c;使用Logstash和Be…

JQuery 新手经常遇到的问题强调

JQuery 新手经常遇到的问题强调 1.HTML onready document.onready $(function(){ }); 2.HTML onload window.onload 页面加载完毕 3. JQuery绑定事件的先后顺序 4.Jquery js异常默认隐藏问题 5.JQuery 版本接口问题 更多&#xff1a; 网页在线打开PDF_网站中在线查看P…

WPF中的选项卡布局TabControl控件

在WPF中&#xff0c;可以使用TabControl控件来创建选项卡布局。TabControl是一种容器控件&#xff0c;它通过选项卡&#xff08;TabItem&#xff09;来组织和显示多个页面或面板。 TabControl控件通常由两个部分组成&#xff1a;选项卡头部&#xff08;Header&#xff09;和选…

Scikit-learn (sklearn)速通 -【莫凡Python学习笔记】

视频教程链接&#xff1a;【莫烦Python】Scikit-learn (sklearn) 优雅地学会机器学习 视频教程代码 scikit-learn官网 莫烦官网学习链接 本人matplotlib、numpy、pandas笔记 1 为什么学习 Scikit learn 也简称 sklearn, 是机器学习领域当中最知名的 python 模块之一. Sk…

burp靶场--WebSockets安全漏洞

burp靶场–WebSockets安全漏洞 https://portswigger.net/web-security/websockets/what-are-websockets ### 什么是 WebSocket&#xff1f; WebSocket是一种通过 HTTP 发起的双向、全双工通信协议。它们通常在现代 Web 应用程序中用于流数据和其他异步流量。 在本节中&#x…

ChatGPT 官方中文页面上线

根据页面显示&#xff0c;OpenAI 现已推出 ChatGPT 的多语言功能 Alpha 版测试&#xff0c;允许用户选择不同语言的界面进行交互。 如下图所示&#xff0c;ChatGPT 会检测系统当前所使用的语言&#xff0c;并提示用户进行语言切换。 用户也可通过设置页面选择其他语言。目前&a…