在 Vue 3 中使用阿里巴巴矢量图标库

news2024/9/23 5:31:11

在项目中基本会用到图标,比较常见的就是阿里图标库。这篇文章主要介绍如何在vue3中使用图标库。

下载并全局注册自定义图标库

  1. 手动下载阿里巴巴矢量图标库的字体文件:
    • 在阿里巴巴矢量图标库网站上选择您需要的图标,并将其添加到购物车。
    • 然后下载文件。
    • 解压下载的文件,将字体文件复制到您的 Vue 3 项目的合适目录例如 src/assets/fonts
      在这里插入图片描述
      在这里插入图片描述
  2. MyIcon.vue 组件中使用自定义图标:
<template>
  <span :class="['iconfont', `${name}`]"></span>
</template>

<script setup lang="ts">
import { defineProps } from 'vue';

defineProps({
  name: {
      type: String ,
      required: true,
    }
});
</script>

<style scoped>

</style>
  1. main.js文件引入
import { createApp } from 'vue';
import App from './App.vue';
import './assets/icons.css'; // 引入自定义图标样式文件
import MyIcon from '@/components/MyIcon/MyIcon.vue'; // 你自己的vue文件路径
const app = createApp(App);
app.component('MyIcon', MyIcon); // 使用
app.mount('#app');
  1. 使用例子
<template>
  <div>
    <my-icon name="iconsearch"></my-icon>
   <!-- 这里的iconsearch是图标名字 -->
  </div>
</template>
<script setup lang="ts"></script>
<style lang=""></style>

使用svg添加图标

  1. 安装插件vite-plugin-svg-icons
npm i vite-plugin-svg-icons;
//或者yarn
yarn add vite-plugin-svg-icons
// 或者pnpm
pnpm i vite-plugin-svg-icons
  1. 在配置文件中引用。我使用的vite构建的项目,所以就在vite.config.js文件操作就行
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'

//1、 引入插件
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
// https://vitejs.dev/config/
// 2、添加createSvgIconsPlugin
export default defineConfig({
  plugins: [vue(),
    createSvgIconsPlugin({
      iconDirs: [path.resolve(process.cwd(), 'src/assets/icons')],
      symbolId: 'icon-[dir]-[name]',
    }),
  ],
resolve: { alias: { '@': path.resolve('./src') } },
})
  1. 在main.js文件引入
// 引入icon svg插件需要配置代码
import 'virtual:svg-icons-register'
  1. 添加svg文件
    一般在assets目录下放svgIcon目录,然后创建你所需要的svg文件,我用的是一个collapse文件。
    在这里插入图片描述
    放上svg代码就行了,比如:
<svg t="1684324017014" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1576"
    width="300" height="300">
    <path
        d="M631.808 838.784a32.704 32.704 0 0 1-32.704 32.704H32.64a32.704 32.704 0 0 1 0-65.408h566.464a32.704 32.704 0 0 1 32.704 32.704m0-217.6a32.64 32.64 0 0 1-32.704 32.64H32.64a32.704 32.704 0 0 1 0-65.344h566.464a32.704 32.704 0 0 1 32.704 32.704m187.84 0l138.944 138.944V482.24z m-187.84-217.6a32.704 32.704 0 0 1-32.704 32.704H32.64a32.64 32.64 0 0 1 0-65.344h566.464a32.704 32.704 0 0 1 32.704 32.64m371.968-30.144a32.704 32.704 0 0 1 20.224 30.144v435.776a32.704 32.704 0 0 1-55.808 23.104l-217.6-217.6a32.576 32.576 0 0 1 0-46.208l217.6-217.6a32.576 32.576 0 0 1 35.584-7.104M1024 186.24a32.704 32.704 0 0 1-32.704 32.704H32.64a32.704 32.704 0 0 1 0-65.344h958.656a32.64 32.64 0 0 1 32.704 32.64"
        p-id="1577"></path>
</svg>
  1. 使用
<template>
  <h1>我是图标</h1>
  <svg>
  // 这里的使用你引入svg的文件名字 #icon-是固定的name替换成文件名就行
    <use href="#icon-collapse" color="blue" style="width: 16px; height:16px"></use>
  </svg>
</template>

<script setup lang="ts">
import { defineProps } from 'vue';
</script>
<style scoped></style>

效果如下图所示:
在这里插入图片描述
当然我只介绍了我熟悉的方式。如有问题欢迎留言讨论

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

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

相关文章

CMake之CPack

文章目录 一、CPack1.用CPack打包成为deb包2.如何确定的Depends依赖包?3.如何确定编译Build-Depends&#xff1f;4.Cpakc打包RPM包 二、deb的简单使用三、deb包相关文件说明1.control文件2.preinst文件3.postinst文件4.prerm文件5.postrm文件 一、CPack CPack 是 CMake 2.4.2…

SpringBoot 集成 EasyExcel 3.x 实现 Excel 导出

目录 EasyExcel官方文档 EasyExcel是什么&#xff1f; EasyExcel注解 springboot集成EasyExcel 简单入门导出 &#xff1a; 实体类 自定义转换类 测试一下 复杂表头一对多导出 &#xff1a; 自定义注解 定义实体类 自定义单元格合并策略 测试一下 EasyExcel官方文档 …

The Sandbox 展示泰国 2023 年元宇宙生态系统

The Sandbox 举办了 2023 年泰国合作伙伴日活动&#xff0c;宣布创建泰国元宇宙生态系统&#xff0c;并对泰国创客社区的巨大合作和发展表示认可。 The Sandbox 联合创始人兼首席运营官 Sebastien BORGET 说&#xff1a;“我们很高兴见证 The Sandbox 泰国生态系统的发展&#…

第七章 网络安全【计算机网络】

第七章 网络安全【计算机网络】 前言推荐第7章 网络安全7.1网络安全问题概述7.1.1计算机网络面临的安全性威胁7.1.2安全的计算机网络7.1.3数据加密模型 7.2两类密码体制7.2.1对称密钥密码体制7.2.2公钥密码体制 7.3鉴别7.3.1报文鉴别7.3.2实体鉴别 7.4密钥分配7.4.1 对称密钥的…

银行软开能干到退休吗?

大家好&#xff0c;我是熊哥。 21世纪了好像不躺平对不起自己&#xff1f;很多读者都关心哪些企业适合躺平&#xff0c;做程序员是不是在银行可以舒舒服服干一辈子&#xff1f;银行招软开&#xff08;软件开发&#xff09;有哪些要求&#xff1f; 现在就来详细讲一讲。 擦亮…

数据结构--二叉树的线索化

数据结构–二叉树的线索化 用土办法找到中序前驱 typedef struct BiTNode {ElemType data; //数据域struct BiTNode *lchild, *rchild; //左、右孩子指针struct BiTnode *parent; //父节点指针 }BiTNode, *BiTree;BiTNode *p; // p指向目标结点 BiTNode *pre NULL; //指向当前…

用Postman和jmeter做接口测试有什么区别吗?

目录 1.创建接口用例集&#xff08;没区别&#xff09; 2.步骤的实现&#xff08;有区别&#xff09; 3数据用例的实现 4断言的实现 5执行 6其他 总结&#xff1a; 1.创建接口用例集&#xff08;没区别&#xff09; Postman是Collections&#xff0c;Jmeter是线程组&am…

web安全php基础_php之string对象详解

PHP 字符串 字符串变量用于包含有字符的值。 在创建字符串之后&#xff0c;我们就可以对它进行操作了。您可以直接在函数中使用字符串&#xff0c;或者把它存储在变量中。 在下面的实例中&#xff0c;我们创建一个名为 txt 的字符串变量&#xff0c;并赋值为 “Hello world!…

MySQL数据库:数据库管理系统与安装MySQL数据库

目录 一、理论 1.数据库管理系统 2.关系型数据库 3.数据库 4.MySQL数据库 5.MySQL部署 二、实验 1.yum安装MySQL 2.配置MySQL数据库的Tab补全 三、问题 1.数据库登录报错 2.数据库密码复杂度报错 四、总结 一、理论 1.数据库管理系统 &#xff08;1&#xff09…

深入浅出fromCharCode和charCodeAt

先来看一个简单的输入输出 console.log(String.fromCharCode(30328)); //癸console.log(癸.charCodeAt()) //30328来回答一个问题&#xff0c;30328是什么&#xff1f; ascii? unicode? utf-8? utf-16? 来让我们看看fromCharCode 在MDN上面的解释 UTF-16代码单元序列…

【数据分析 - 基础入门之NumPy③】日常难题解决

知识目录 前言一、启动Jupyter Notebook报错没有这样的目录结语# 往期文章&相关导读 前言 本篇文章用于整理在学习 NumPy 过程中遇到的错误&#xff0c;以此做个记录&#xff0c;希望能帮助到大家&#xff0c;让大家少走弯路。 一、启动Jupyter Notebook报错没有这样的目…

改动最小,最简洁的 tomcat catalina.out日志切割(按天)

tomcat日志切割 环境:实现步骤具体操作 环境: 系统: linux操作系统 centOStomcat 8.5* 实现步骤 安装cronolog工具修改tomcat中的bin目录下的 catalina.sh 文件配置重启tomcat 具体操作 安装cronolog 工具输入命令: yum install cronolog 中间 停顿 填个 y 同意修改配置…

什么是cookies,session,token(面试必问)

目录 前言 http无状态 cookies cookie的格式显示 cookie存在问题 利用cookies可以做什么 session session的格式显示 session存在的问题 利用session可以做什么 token token的格式显示 token存在的问题 利用token可以做什么 总结 前言 一般在面试的时候&#xf…

内网隧道代理技术(九)之应用层代理技术介绍

应用层代理技术介绍 前面我们介绍了相关的一些概念和隧道的技术,主要还是停留在单个端口的隧道 1、反弹shell2、端口转发3、端口映射这些都是利用端口建立隧道,但是并不能满足我们日常生活中的要求 加入我们需要对网络中的机器进行扫描,我们就不能使用端口转发或者端口映射…

【计算机视觉 | 目标检测 | 图像分割】arxiv 计算机视觉关于目标检测和图像分割的学术速递(7 月 7 日论文合集)

文章目录 一、检测相关(5篇)1.1 Contextual Affinity Distillation for Image Anomaly Detection1.2 Noise-to-Norm Reconstruction for Industrial Anomaly Detection and Localization1.3 MMNet: Multi-Collaboration and Multi-Supervision Network for Sequential Deepfake…

postman接口测试之postman常用的快捷键

作为一名IT程序猿&#xff0c;不懂一些工具的快捷方式&#xff0c;应该会被鄙视的吧。收集了一些Postman的快捷方式&#xff0c;大家一起动手操作~ 简单操作 操作mac系统windows系统 打开新标签 ⌘TCtrl T关闭标签⌘WCtrl W强制关闭标签Cmd Alt WCtrl Alt W切换到下一个…

【JavaEE】前后端综合项目-博客系统(上)

【JavaEE】前后端综合项目-博客系统&#xff08;上&#xff09; 文章目录 【JavaEE】前后端综合项目-博客系统&#xff08;上&#xff09;1. 创建项目2. 数据库设计3. 数据库操作的封装3.1 DataSource&#xff08;单例&#xff09;3.1 连接操作3.2 关闭操作3.3 创建实体类3.4 封…

“AI无界·智链全球”!壹沓科技2023世界人工智能大会论坛成功举办,构建数智供应链新范式

“AI无界智链全球”论坛成功举办 构建数智供应链新范式 7月6日&#xff0c;由世界人工智能大会组委会办公室指导&#xff0c;壹沓科技主办&#xff0c;上海交通大学安泰经济与管理学院、上海现代服务业联合会物流与供应链专委会、中国航务周刊协办的“AI无界智链全球”高端论坛…

前端vue入门(纯代码)23_多组件共享

我不喜欢去银行&#xff0c;就好像太监不喜欢去妓院一样&#xff0c;有些东西你没有&#xff0c;去了也是难受。 【24.Vuex中的多组件状态共享】 页面展示&#xff1a; vuex数据共享完整代码&#xff1a; App.vue和main.js&#xff1a;就不展示了。 store/index.js //该文…

Verilog学习笔记1:D触发器

代码1&#xff1a; timescale 1ns/10psmodule d_trigger(d,clk,q);input d; input clk; output q;assign q~d;endmodule//testbench module d_trigger_tb; reg clk; reg d; wire q;d_trigger d_trigger(.d(d),.clk(clk),.q(q));initial begind<0;clk<0;#1000 $stop;end…