uni-app 图标库整合最佳实践:使用 iconfont 构建属于自己的图标库

一. 前言

在前端开发中,图标已经成为页面设计中不可或缺的一部分。图标可以使界面更加美观、清晰,并且能够提升用户体验。而使用图标库来管理和引用图标资源,可以带来更多的便利和效率。

而在众多的图标库中,iconfont 独树一帜。iconfont 是一种基于字体的图标库,它将图标转换为字体的形式,并通过 unicode 编码引用。这种方式不仅可以减少图标资源的大小,提升页面加载速度,而且可以通过 CSS 进行灵活的样式控制,让图标的应用更加方便和可定制。

假设在一个项目中,需要扩展多个图标,所以我们应该把各个图标收集进一个阿里图标库的项目中,即使后面不断的扩展图标,也能让它们在同一个库中,方便项目所有图标的整合与应用。

在本篇文章中,我将为大家介绍在 uni-app 中使用 iconfont 自定义图标库的方法和步骤,如何更方便更简捷的使用自定义图标。

二. 阿里巴巴矢量图标库

1. 简介

阿里巴巴矢量图标库是一种图标字体库,它将图标转换为字体的形式,并通过 unicode 编码进行引用。通过使用 iconfont,开发者可以使用字体图标代替传统的图片图标,以提高网页加载速度和图标的灵活性。iconfont 中的图标可以使用 CSS 进行样式控制,并且可以根据需要进行缩放、颜色调整等操作,非常方便。

官方链接:iconfont - 阿里巴巴矢量图标库icon-default.png?t=O83Ahttps://www.iconfont.cn/

2. 创建项目

登录阿里巴巴矢量图标库系统后,可以选择创建项目或者管理自己所参与的项目。

点击“资源管理” -> “我的项目” 即可以进行查看自己所属项目范围,可以进行编辑项目,挑选图标库中的图标引入自己项目中。

三. 管理图标库

一般情况下,我建议在收藏的项目中,使用 “下载至本地" 的功能,而后解压,复制文件夹中的 “iconfont.css” 到 uni-app 项目中(其余的文件可忽略),具体的操作我们接下来一步一步进行演示一下。

下面的操作默认已经进入阿里图标库的“图标管理”栏目中。

1. 修改图标前缀

我建议应该修改这个图标的前缀,这样以后有新图标加入的时候,不用每次频繁修改前缀,点击右上角的 “项目设置“ ,进行修改项目信息,这里主要修改的是图标前缀信息,如下图所示:

 

修改 “FontClass/Symbol 前缀” 项为“custom-icon-

修改 “Font Family” 为 “custom-icon

如下图所示:

 

完成这一步,我们就可以在 iconfont 的海量图标库中选用适合自己的图标了,可以将适合自己项目的图标添加到自己的项目中。

说明:

FontClass/Symbol 前缀 的主要作用是:会在自己添加的图标 css 名称前添加统一的字符串,例如:home 图标,那么生成的 css 样式名称则为:custom-icon-setting

Font Family 的主要作用是:所用的图标具备的相同特性,定义字体的公共信息,使用的 font-family 等

2. 下载项目至本地

添加所需要的图标至项目完成后,我们就可以下载图标的 css 文件了。在项目的图标页面,点击右上角的 “下载至本地”,就可以将 iconfont 相关项目文件夹下载下来了,如下图所示:

 

下载完成,将文件夹解压后大概有下面几项文件,但是我们只需要一个文件即可:iconfont.css,如下图所示:

 

完成以上的几个步骤,我们大致就完成了在 iconfont 网站上对图标的操作了,接下来需要我们做的就是将这个图标库如何引入到 uni-app 项目中并进行使用。

3. 添加图标库到项目

复制上述的 “iconfont.css”文件到uni-app根目录的static目录后(也可以为其他目录,例如:assets等),打开“iconfont.css”,内部 css 代码如下:

 

删掉上图中圈出的部分,

注意:

切记把src: url('data:application/x-font-woff2......,' 最后的逗号,改成分号;

删除掉 css 中无用的部分,最终如下图所示:

 

通过以上的操作步骤,我们最终得到了项目图标库生成的 css 样式,这样以后有新图标加入的时候,不用每次频繁修改项目设置中的图标前缀,只需要进行添加图标至项目后,下载文件到本地,替换现有的 css 文件即可。

接下来我们开始讲最重要的部分,如何使用这些图标

四. 组件化开发

1. 原始引用

按照以前的前端项目开发,我们一般会直接引入 iconfont 文件,然后在前端中这样使用

<span
  class="iconfont iconfont-setting"
  style="font-size: 20px;color: #fff;"
></span>

如上述代码所示,使用了 setting 图标,设置了图标大小以及图标颜色。虽说这样使用没有什么问题,但是每次都这样使用的话没办法进行统一管理,也多少有点繁琐了。

而且现在前端开发基本上都是组件化开发的理念,为了方便统一进行管理,去除繁琐,我们最终要开发一个 Icon 的组件进行使用。

2. 图标组件

首先我们分析一下这个图标组件所需要承载的最简单的功能,那就展示图标,因此这个组件简要的功能主要包含:

  • 通过图标名称直接引用图标

  • 支持修改图标样式

  • 支持修改图标前缀,便于添加其他不同的 iconfont

<template>
  <text
    :class="[ prefix, `${prefix}-${name}` ]"
    :style="{ 'font-size': size, color: color }"
  >
  </text>
</template>

<script>
  export default {
    name: "custom-icon",
    props: {
      // 图标类名
      name: {
        type: String,
        default: "",
      },
      // 图标颜色
      color: {
        type: String,
        default: "#333",
      },
      // 字体大小,单位rpx或px
      size: {
        type: String,
        default: "16px",
      },
      // 图标前缀
      prefix: {
        type: String,
        default: "custom-icon",
      },
    },
  };
</script>

通过上述的代码,我们简单的实现了一个图标组件,主要提供了 4 个 props

  • name:图标类名,例如:setting、home、user

  • color:图标颜色,例如:#333、red、blue

  • size:字体大小,例如:16px、40rpx

  • prefix:图标前缀,例如:custom-icon、other-icon

当然,这个组件封装其实特别简单,在实际的项目开发中,我们可以根据项目的业务场景,将所需图标样式的复杂度进行一步步改造和优化,打造一款适合自己项目的图标库组件。

3. 如何使用

在项目中可以进行这样使用:

<custom-icon name="setting" size="40rpx" color="#333333"></custom-icon>

加载后的图标如下图所示:

 

4. 优缺点分析

对比直接使用 iconfont 样式的方式使用图标,使用组件化图标有以下几个优缺点:

优点

  • 使用简单快捷

  • 便于统一管理和维护

  • 便于多方协作

  • 便于拓展功能

缺点

一个最大的缺点就是需要额外开发一个组件进行使用,这个缺点可以忽略不计。

说明:图标前缀默认使用的我自己项目中的 custom-icon,组件中也提供了一个 prefix 的 props,如果我们项目中需要引入多个不同的图标前缀的 iconfont 库,那么这个 props 就发挥自己的作用了,只需要修改这个图标的前缀即可

五. 总结

通过本篇文章,我们了解了在前端项目中使用 iconfont 自定义图标库的方法和步骤。使用自定义图标库不仅能够提升页面的美观,还能减少图标资源的大小,提升页面加载速度。对于前端开发者来说,iconfont 是一个强大而便捷的工具。

在使用 iconfont 进行图标库的创建和管理时,我们需要注意以下几个注意事项:

  • 维护好自己的图标资源,以免出现图标名称混淆或冲突的情况,导致引用图标不明确。

  • 修改 “iconfont.css” 时,注意修改最后的 ,;,避免导致引入样式文件出错,图标不展示等问题。

资源链接

iconfont - 阿里巴巴矢量图标库icon-default.png?t=O83Ahttps://www.iconfont.cn/

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

课程讲解--深入探究二分算法

一、二分查找算法的基本概念 定义与原理 二分查找&#xff0c;也被称为折半查找&#xff0c;是一种在有序数据集合中查找特定元素的高效算法。其原理基于分治思想&#xff0c;每次查找都将查找区间缩小一半。例如&#xff0c;在一个有序数组中查找一个特定的数字&#xff0c;我…

达梦数据库DM Exception字符串截断错误,略坑~

前言 我之前在使用达梦数据库的时候&#xff0c;遇到了很多很多的问题&#xff0c;主要对达梦数据库也不是很熟悉&#xff0c;它的语法和我所熟悉的mysql和postgresql有很大的区别。 今天&#xff0c;讲一下我之前遇到的一个问题。这个问题的起因是用达梦数据库迁移工具&…

Java版工程行业管理系统-提升工程项目的综合管理能力

工程项目管理涉及众多环节和角色&#xff0c;如何实现高效协同和信息共享是关键。本文将介绍一个采用先进技术框架的Java版工程项目管理系统&#xff0c;该系统支持前后端分离&#xff0c;功能全面&#xff0c;可满足不同角色的需求。从项目进度图表到施工地图&#xff0c;再到…

高考:心态、时间、知识,多维度攻略让你脱颖而出

高考&#xff0c;宛如一场无声的激战&#xff0c;承载着无数莘莘学子的梦想与热望。在这激烈的竞争中&#xff0c;充分且周全的准备显得尤为关键。那么&#xff0c;高考备考究竟应从哪些方面入手&#xff1f;又有哪些行之有效的备考策略能为我们保驾护航呢&#xff1f; 一、高考…

信息安全工程师(82)操作系统安全概述

一、操作系统安全的概念 操作系统安全是指操作系统在基本功能的基础上增加了安全机制与措施&#xff0c;从而满足安全策略要求&#xff0c;具有相应的安全功能&#xff0c;并符合特定的安全标准。在一定约束条件下&#xff0c;操作系统安全能够抵御常见的网络安全威胁&#xff…

SQL server 中 CROSS APPLY的使用

CROSS APPLY 是 SQL Server 中的一个操作符&#xff0c;用于将一个表表达式&#xff08;如子查询、函数等&#xff09;与外部表进行连接。CROSS APPLY 类似于 INNER JOIN&#xff0c;但它允许你在一个查询中多次引用外部表的行&#xff0c;并且可以动态地生成结果集。 基本语法…

硬件---3电容---电容特性、上电和断电延时、稳压功能、容抗计算

一电容是什么 1概念 电容就是两块不连接的导体加上中间的绝缘材料。其本身能够存储电荷&#xff0c;当在这两个互相导体两端增加电压的时候&#xff0c;就会形成电场&#xff0c;从而存储电能。 2注意 <1>电解电容正负极一定不能接反&#xff0c;如果接反轻则烧坏&am…

行车记录打不开?原因分析与数据恢复全攻略

行车记录遭遇困境 行车记录仪&#xff0c;作为现代驾驶中的重要设备&#xff0c;不仅能够帮助我们记录行车过程&#xff0c;还能在关键时刻提供有力的证据。然而&#xff0c;当行车记录突然打不开时&#xff0c;这无疑给车主们带来了不小的困扰。行车记录打不开&#xff0c;可…

考研要求掌握C语言(归并排序)

归并排序考啥&#xff1f; 在考研中归并排序只出在选择题&#xff0c;理解原理很重要 且在考研中考靓靓归并&#xff0c;还是比较简单的 归并排序原理 就是每次分一半&#xff0c;直到每一半只含有一个或不能再分时&#xff0c;一半一半的进行排序&#xff0c;最终合并两个…

编译工具与文件学习(一)-YAML、repos、vcstoolcolcon

YAML YAML&#xff08;YAML Ain’t Markup Language&#xff09;是一种人类可读的数据序列化格式&#xff0c;常用于配置文件、数据交换和存储结构化数据。YAML 的设计目标是简洁、易读&#xff0c;并且能够表示复杂的数据结构。 YAML 文件的基本语法 基本结构&#xff1a; Y…

HDFS和HBase跨集群数据迁移 源码

HDFS集群间数据迁移&#xff08;hadoop distcp&#xff09; hadoop distcp \ -pb \ hdfs://XX.14.36.205:8020/user/hive/warehouse/dp_fk_tmp.db/ph_cash_order \ hdfs://XX.18.32.21:8020/user/hive/warehouse/dp_fksx_mart.db/HBase集群间数据&#xff08;hbase ExportSnap…

ffplay 实现视频流中音频的延迟

ffplay -rtsp_transport tcp -i rtsp://admin:1234qwer192.168.1.64:554/Streaming/Channels/101 -vn -af "adelay5000|5000"在这个命令中&#xff1a; -vn 参数表示只播放音频。 -af "adelay5000|5000" 参数表示将音频延迟5000毫秒&#xff08;即5秒&…

(十五)JavaWeb后端开发——异常处理/AOP面向切面编程

目录 1.异常处理 2.AOP概述 3.AOP核心概念 4.AOP-通知类型 5.切入点表达式 6.连接点 1.异常处理 Web后端开发的三层架构是Controller调用Service&#xff0c;Service调用Mapper&#xff0c;如果碰到了异常就会逐级向上抛出&#xff0c;所以Java就在Controller层设计了全…

Linux命令 - linux索引节点、硬链接、软链接的介绍与使用

文章目录 1 索引节点inode2 硬链接Hard Link3 软链接Soft Link 1 索引节点inode 在Linux系统中&#xff0c;保存在磁盘分区中的文件&#xff0c;不管是什么类型&#xff0c;系统都会给它分配一个编号&#xff0c;这个编号被称为索引节点编号&#xff08;Inode Index&#xff0…

浅谈智能家居在智慧养老实训室中的作用

随着人口老龄化的加剧&#xff0c;智慧养老逐渐成为社会关注的热点。在此背景下&#xff0c;智能家居技术以其独特的优势受到广泛关注。智能家居不再是奢侈品&#xff0c;而是提升老年人生活品质和家庭养老效率的有效工具。它们为老年人提供了便捷、安全、舒适的生活环境&#…

【DL】YOLO11 OBB目标检测 | 模型训练 | 推理

本文进行YOLO11的旋转目标检测任务,旋转目标检测能够更精确地定位和描述那些非水平排列的目标,比如倾斜的飞机、船舶等。在原始的目标检测中,添加一个角度预测,实现定向边界框检测。 话不多说,先来个效果图!!! YOLO11中的旋转目标检测的特点 ▲更精确的定位:通过使用…

Linux Centos7 如何安装图形化界面

如果系统是以最小安装的话,一般是不带有图形化界面的,如果需要图形话界面,需要单独安装。本篇教程,主要介绍如何在CentOS7中安装图形化界面。 1、更新系统 首先,保证系统依赖版本处于最新。 sudo yum update -y2、安装 GNOME 桌面环境 sudo yum groupinstall "GNOME…

学习笔记:黑马程序员JavaWeb开发教程(2024.11.8)

5.10 分层解耦-分层解耦&#xff08;IOC-DI&#xff09; 在之前写的代码中&#xff0c;Controller层中new了一个Service层中的对象&#xff0c;在Service层中类名改变&#xff0c;则Controller层中也需要变化&#xff0c;这就是两个层之中耦合较重&#xff0c;需要减少耦…

数据库的使用02:SQLServer的连接字符串、备份、还原、SQL监视相关设置

目录 一、连接字符串 【本地连接字符串】 【远程连接字符串】 二、备份 三、还原 &#xff08;1&#xff09;还原数据库-bak、btn文件 &#xff08;2&#xff09;附加数据库mdf文件 四、SQL监视器的使用 一、连接字符串 【本地连接字符串】 server DESKTOP-FTH2P3S; Da…

大数据-212 数据挖掘 机器学习理论 - 无监督学习算法 KMeans 基本原理 簇内误差平方和

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…