首页 > 其他分享 >vue3项目中使用iconify

vue3项目中使用iconify

时间:2024-11-01 18:16:56浏览次数:4  
标签:vue 项目 Icons unplugin iconify vue3 import vite 图标

事情是这样的,我比较喜欢使用Material Design Icons的图标(Material Design Icons - Icon Library - Pictogrammers)。最初我把整个Material Design Icons的css文件下载下来,然后在vue3项目中使用。但是这个css文件的体积比较大,但是我用的也就是那几个icon图标。有没有办法实现图标的按需导入呢?我们可以使用iconify实现icon图标的按需引入。
iconify npm链接:unplugin-icons - npm
在这里介绍了怎么在vue3项目中实现图标的按需引入:

我下面介绍iconify离线按需加载使用, 也感谢知乎上的这位朋友,他的文章解决了我很多问题:(vue3+vite使用iconify图标 - 知乎)

1.安装iconify

全部数据
pnpm add -D @iconify/json

部分数据(以Material Design Icons为例)
pnpm add -D @iconify-json/mdi

2.安装图标按需加载工具

pnpm add -D unplugin-icons

3.手动按需加载

我们把图标按需加载工具在viete.config.js中配置一下:

import {fileURLToPath, URL} from 'node:url'
import {defineConfig} from 'vite'
import vue from '@vitejs/plugin-vue'

import Icons from 'unplugin-icons/vite'  //图标按需加载工具

// https://vite.dev/config/
export default defineConfig({
    plugins: [
        vue(),
        Icons(),  //图标按需加载工具
    ],
    resolve: {
        alias: {
            '@': fileURLToPath(new URL('./src', import.meta.url))
        }
    }
})

在组件中使用:

<script setup>
import IconHome from "~icons/mdi/home" //导入icon
</script>

<template>
  <IconHome/> <!--使用icon-->
</template>

使用什么图标,都需要在组件中导入一下。

4.自动按需导入

需要安装unplugin-vue-components插件:

pnpm add unplugin-vue-components -D

在vite.config.js中进行配置:

import {fileURLToPath, URL} from 'node:url'
import {defineConfig} from 'vite'
import vue from '@vitejs/plugin-vue'

//icon按需引入
import Icons from 'unplugin-icons/vite'
import IconsResolver from 'unplugin-icons/resolver'
import Components from 'unplugin-vue-components/vite'

// https://vite.dev/config/
export default defineConfig({
    plugins: [
        vue(),
        Components({
            resolvers: [
                IconsResolver(),
            ],
        }),
        Icons(),
    ],
    resolve: {
        alias: {
            '@': fileURLToPath(new URL('./src', import.meta.url))
        }
    }
})

在组件中使用:

<script setup>
</script>

<template>
  <i-mdi-home /> <! --使用icon-->
</template>

我们可以配置<i-mdi-home />这里的第一个字母: 

在vite.config.js中进行配置:


import {fileURLToPath, URL} from 'node:url'
import {defineConfig} from 'vite'
import vue from '@vitejs/plugin-vue'

import Icons from 'unplugin-icons/vite'
import IconsResolver from 'unplugin-icons/resolver'
import Components from 'unplugin-vue-components/vite'

// https://vite.dev/config/
export default defineConfig({
    plugins: [
        vue(),
        Components({
            resolvers: [
                IconsResolver({
                    prefix: 'icon'  // 更改图标前缀
                }),
            ],
        }),
        Icons(),
    ],
    resolve: {
        alias: {
            '@': fileURLToPath(new URL('./src', import.meta.url))
        }
    }
})

在组件中使用:        

<script setup>
</script>

<template>
  <icon-mdi-home />
</template>

原文: https://juejin.cn/post/7430732005641502754

标签:vue,项目,Icons,unplugin,iconify,vue3,import,vite,图标
From: https://blog.csdn.net/gaotlantis/article/details/143309845

相关文章

  • MS Projcet 和 Redmine 在进行项目管理的时候有什么区别
    在进行项目管理的时候,MSProject和Redmine有以下主要的区别:1.平台属性不同;2.功能侧重点不同;3.使用者不同;4.兼容性不同;5.成本差异。总的来说,MSProject适用于规模较大、复杂度较高的项目管理,而Redmine适用于小型团队、开源社区以及迭代开发速度较快的项目管理。1.平台属性不同......
  • 手动搭建koa+ts项目框架(部署服务器使用pm2启动,并设置相关环境变量)
    文章目录前言一、什么是pm2?pm2是一个进程管理工具,可以用它来管理你的node进程,并查看node进程的状态,当然也支持性能监控,进程守护,负载均衡等功能二、配置环境变量1、配置`ecosystem.config.js`文件2、配置`pm2.json`文件总结`如有启发,可点赞收藏哟~`前言接着手动......
  • 中电金信:GienTech动态|丰收之秋,公司多项目获得荣誉
    ​ 中电金信微电影《妙“笔”生花》获国资委表彰  ​ 近日,国务院国资委在京举行中央企业社会主义核心价值观主题微电影(微视频)展映发布活动。中电金信作品《妙“笔”生花》获评第五届中央企业社会主义核心价值观主题微电影(微视频)敬业奉献类优秀作品。该片以中国电子联......
  • 华为云开源项目Sermant正式成为CNCF官方项目
    近日,云原生计算基金会(CNCF)正式接纳由华为云发起的云原生无代理服务网格项目Sermant。Sermant的加入,极大地丰富了云原生微服务治理技术的探索、创新和发展,为CNCF社区注入了新的活力。 Sermant是华为云在微服务治理技术领域多年的技术积累和丰富的实践经验孵化而来,致力于解决大......
  • 项目实战:Qt+OpenCV仿射变换工具v1.1.0(支持打开图片、输出棋盘角点、调整偏移点、导出
    需求  1.打开图片;  2.矫正识别角点;  3.opencv摄像头操作子线程处理;  4.支持设置棋盘格的行列角点数; 背景  深入研究图像拼接细分支算法,产出的效果查看工具,验证算法单步思路。 相关博客  《项目实战:Qt+Opencv相机标定工具v1.3.0(支持打开摄像头、视......
  • 创建.net项目时显示.net SDK未被安装
    Couldnotexecutebecausetheapplicationwasnotfoundoracompatible.NETSDKisnotinstalled.Possiblereasonsforthisinclude:*Youintendedtoexecutea.NETprogram:Theapplication'new'doesnotexist.*Youintendedtoexecutea.NE......
  • web集群项目-迁移与接入负载
    1.web01数据库迁移到db01项目背景:网站集群访问量或数据量越来越大单台机器无法承受.项目实时步骤:准备新环境部署数据库服务(版本一致)临时停止服务,旧环境备份,新环境恢复,测试修改数据库地址(用户,密码,库),指向新的环境(wp-config.php代码中连接数据库的配置文件)......
  • 软件开发中,做产品与做项目有什么区别
    产品开发和项目开发的区别主要体现在:1.目标不同;2.开发过程不同;3.涉及人员不同;4.时间周期不同;5.结果测评不同。总的来说,产品开发更多侧重于满足市场需求和用户体验,长期维护并进行持续优化;而项目开发更注重完成特定的任务,达到预定的目标。1.目标不同产品开发的目标是创建出能满......
  • 开发 react 技术栈的前台项目,选用 semantic-ui-react 组件库是否是较好的选择
    在前端开发中,合适的UI组件库的选择至关重要,它能在保证交互和视觉一致性的同时,大大提升开发效率。Semantic-UI-React是React技术栈中备受关注的UI组件库之一,以其丰富的组件和友好的API受到了许多开发者的欢迎。然而,是否选择它作为项目的UI组件库需结合多个因素综合考虑......
  • 抓好两大重点!工程项目成功的关键!
    当下工程行业的市场需求非常低迷,而竞争却愈发激烈,要想在如此残酷的环境中谋得生存发展之道,做好手上的项目是必然的选择,而工程项目管理的成效直接关系到企业的成败。基于蓝燕云在工程项目管理上的咨询经验,抓好下面两大重点,工程项目不成功都难。一预则立:重视项目启动前的准备......