vue中使用iconfont图标

本文介绍如何在Vue项目中简便地使用Iconfont图标。通过引入veypi/one-icon组件,支持Vue2和Vue3,简化了在Vue中引用SVG图标的过程。只需在main.ts中配置并引入相应的js文件,然后在模板中直接使用<one-icon>组件,无需添加'icon-'前缀。此外,还提供了原生使用Iconfont的方法,包括引入js和css,以及在svg中使用<use>标签引用图标。

vue中使用iconfont图标

easy to use iconfont in vue

iconfont 是一个非常方便管理和查找icon的平台, 但在vue中引用svg时稍微有点麻烦,所以简单封装成了该项目

使用组件 one-icon

# vue2
yarn add @veypi/one-icon@1
# vue3
yarn add @veypi/one-icon@2
// main.ts 配置
import OneIcon from '@veypi/one-icon'
// 注意下载下来的js文件放public文件夹里
Vue.use(OneIcon, {href: './icon.js'})
// 或者使用阿里cdn 好处是每次添加icon后不用更新 但是无法离线或内网使用
Vue.use(OneIcon, {href: 'https://at.alicdn.com/t/font*****.js'})

使用中无需带icon-的抬头

<one-icon>IconName</one-icon>
<one-icon>Chip</one-icon>

在vue中原生使用iconfont

  • 引入js

    js地址

    <script type="text/javascript" src=""></script>
    
    • 引入css

      <style type="text/css">
          .icon {
             width: 1em; height: 1em;
             vertical-align: -0.15em;
             fill: currentColor;
             overflow: hidden;
          }
      </style>
      
      <link rel="stylesheet" type="text/css" href="">
      
    • 引用icon

      <svg class="icon" aria-hidden="true">
          <use xlink:href="#icon-xxx"></use>
      </svg>
      

参考

Vue 3 项目中集成和使用 iconfont 图标,可以通过以下方式实现: ### 1. 获取 iconfont 图标库 首先访问 [iconfont 官网](https://www.iconfont.cn/) 创建图标库并下载图标字体文件,通常包括 `.woff`、`.ttf`、`.eot` 和 `.svg` 格式。将这些文件放入项目中的 `public/fonts` 或 `src/assets/fonts` 目录下。 ### 2. 添加字体文件的 CSS 引用 在项目的 `public/index.html` 或 `src/assets/styles` 中添加 iconfont 的 CSS 引用。例如: ```html <link rel="stylesheet" href="https://at.alicdn.com/t/font_123456_abcde.css"> ``` 或者,如果使用本地字体文件,则需定义 `@font-face` 并在组件中引用类名: ```css @font-face { font-family: 'iconfont'; src: url('../assets/fonts/iconfont.woff2') format('woff2'), url('../assets/fonts/iconfont.woff') format('woff'); font-weight: normal; font-style: normal; } .iconfont { font-family: "iconfont" !important; font-size: 16px; font-style: normal; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } ``` ### 3.Vue 组件中使用图标 通过类名使用 iconfont 图标: ```vue <template> <i class="iconfont icon-example"></i> </template> <script setup> // 可以在此处引入样式文件 import '@/assets/styles/iconfont.css'; </script> ``` 确保类名与 iconfont 提供的类名一致。 ### 4. 使用自动导入优化图标使用体验 若希望像组件一样使用图标,可以结合 `unplugin-vue-components` 实现自动按需引入。在 `vite.config.ts` 中配置: ```ts import Components from 'unplugin-vue-components/vite'; import { defineConfig } from 'vite'; import vue from '@vitejs/plugin-vue'; export default defineConfig({ plugins: [ vue(), Components({ resolvers: [], // 可根据需要添加解析器 }), ], }); ``` ### 5. 使用 SVG 图标代替字体图标(可选) iconfont 也支持 SVG 图标导出,可通过 `vite-plugin-svgr` 插件实现 SVG 图标作为组件使用: 安装依赖: ```bash npm install -D vite-plugin-svgr @svgr/webpack ``` 配置 `vite.config.ts`: ```ts import svgr from 'vite-plugin-svgr'; export default defineConfig({ plugins: [ vue(), svgr(), // 启用 SVGR 插件 ], }); ``` 在组件中使用 SVG 图标: ```vue <template> <IconExample /> </template> <script setup> import IconExample from '@/assets/icons/example.svg?react'; </script> ``` ### 6. 图标库管理建议 对于大型项目,建议使用图标管理工具如 `@vite-icons/core` 或 `unplugin-icons` 来统一管理图标资源,支持从 iconfont、Font Awesome 等多个来源加载图标。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值