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

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

原文合集地址如下,有需要的朋友可以关注

本文地址

合集地址

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

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

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


3. main.js文件引入
```javascript
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'
    
  2. 添加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>

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

目录
相关文章
|
11月前
|
JavaScript 前端开发 安全
Vue 3
Vue 3以组合式API、Proxy响应式系统和全面TypeScript支持,重构前端开发范式。性能优化与生态协同并进,兼顾易用性与工程化,引领Web开发迈向高效、可维护的新纪元。(238字)
1300 139
|
缓存 JavaScript PHP
斩获开发者口碑!SnowAdmin:基于 Vue3 的高颜值后台管理系统,3 步极速上手!
SnowAdmin 是一款基于 Vue3/TypeScript/Arco Design 的开源后台管理框架,以“清新优雅、开箱即用”为核心设计理念。提供角色权限精细化管理、多主题与暗黑模式切换、动态路由与页面缓存等功能,支持代码规范自动化校验及丰富组件库。通过模块化设计与前沿技术栈(Vite5/Pinia),显著提升开发效率,适合团队协作与长期维护。项目地址:[GitHub](https://github.com/WANG-Fan0912/SnowAdmin)。
1582 5
|
11月前
|
缓存 JavaScript 算法
Vue 3性能优化
Vue 3 通过 Proxy 和编译优化提升性能,但仍需遵循最佳实践。合理使用 v-if、key、computed,避免深度监听,利用懒加载与虚拟列表,结合打包优化,方可充分发挥其性能优势。(239字)
688 1
|
12月前
|
开发工具 iOS开发 MacOS
基于Vite7.1+Vue3+Pinia3+ArcoDesign网页版webos后台模板
最新版研发vite7+vue3.5+pinia3+arco-design仿macos/windows风格网页版OS系统Vite-Vue3-WebOS。
1193 11
|
11月前
|
JavaScript 安全
vue3使用ts传参教程
Vue 3结合TypeScript实现组件传参,提升类型安全与开发效率。涵盖Props、Emits、v-model双向绑定及useAttrs透传属性,建议明确声明类型,保障代码质量。
761 0
|
缓存 前端开发 大数据
虚拟列表在Vue3中的具体应用场景有哪些?
虚拟列表在 Vue3 中通过仅渲染可视区域内容,显著提升大数据列表性能,适用于 ERP 表格、聊天界面、社交媒体、阅读器、日历及树形结构等场景,结合 `vue-virtual-scroller` 等工具可实现高效滚动与交互体验。
1217 1
|
JavaScript 前端开发 UED
Vue 表情包输入组件的实现代码:支持自定义表情库、快捷键发送和输入框联动的聊天表情解决方案
本文详细介绍了在 Vue 项目中实现一个功能完善、交互友好的表情包输入组件的方法,并提供了具体的应用实例。组件设计包含表情分类展示、响应式布局、与输入框的交互及样式定制等功能。通过核心技术实现,如将表情插入输入框光标位置和点击外部关闭选择器,确保用户体验流畅。同时探讨了性能优化策略,如懒加载和虚拟滚动,以及扩展性方案,如自定义主题和国际化支持。最终,展示了如何在聊天界面中集成该组件,为用户提供丰富的表情输入体验。
1026 8
|
缓存 JavaScript UED
除了循环引用,Vue3还有哪些常见的性能优化技巧?
除了循环引用,Vue3还有哪些常见的性能优化技巧?
628 0
|
JavaScript
vue3循环引用自已实现
当渲染大量数据列表时,使用虚拟列表只渲染可视区域的内容,显著减少 DOM 节点数量。
334 0
|
JavaScript 前端开发 API
Vue 2 与 Vue 3 的区别:深度对比与迁移指南
Vue.js 是一个用于构建用户界面的渐进式 JavaScript 框架,在过去的几年里,Vue 2 一直是前端开发中的重要工具。而 Vue 3 作为其升级版本,带来了许多显著的改进和新特性。在本文中,我们将深入比较 Vue 2 和 Vue 3 的主要区别,帮助开发者更好地理解这两个版本之间的变化,并提供迁移建议。 1. Vue 3 的新特性概述 Vue 3 引入了许多新特性,使得开发体验更加流畅、灵活。以下是 Vue 3 的一些关键改进: 1.1 Composition API Composition API 是 Vue 3 的核心新特性之一。它改变了 Vue 组件的代码结构,使得逻辑组
2479 0