当前位置:首页 » 《我的小黑屋》 » 正文

iconify图标使用

16 人参与  2024年04月01日 15:31  分类 : 《我的小黑屋》  评论

点击全文阅读


iconify离线使用-1

参考学习链接1:https://juejin.cn/post/7042971845695373325

参考学习链接2:https://juejin.cn/post/7184730305545109561

参考学习链接3:https://juejin.cn/post/7087827571861585956

查找图标网址:https://icon-sets.iconify.design/material-symbols/

导入全部iconify

安装依赖

npm install @iconify/iconify -Snpm install vite-plugin-purge-icons @iconify/json -D

配置vite.config.js文件

// vite.config.jsimport PurgeIcons from 'vite-plugin-purge-icons'export default {  plugins: [    PurgeIcons({      /* PurgeIcons Options */    })  ]}

在入口文件导入(可能会有 raw.githubusercontent.com 相关错误,详细说明

// main.jsimport '@purge-icons/generated'

标签使用

<span class="iconify" data-icon="eva:people-outline"></span>

按需导入iconify

按需导入的本质是:根据图标前缀导入对应的json文件,这种导入文件的形式可以把该图标集都导入进来。

import iconify from '@iconify/iconify'import dashicons from '@iconify/json/json/dashicons.json'import emojioneMonotone from '@iconify/json/json/emojione-monotone.json'iconify.addCollection(dashicons)iconify.addCollection(emojioneMonotone)

还有一种导入单个图标的方式:

import Iconify from '@iconify/iconify/offline'import adminUsers from '@iconify/icons-dashicons/admin-users' //icons-dashicons需要安装Iconify.addIcon('dashicons:admin-users', adminUsers)

备注:icons-dashicons 需要单独安装 npm install @iconify/icons-dashicons -D

iconify离线使用相关错误

参考学习链接:https://blog.csdn.net/qq_39367226/article/details/118703069

在离线使用iconify时出现的 raw.githubusercontent.com 是因为这个地址被彻底屏蔽了,解决方案可以在hosts文件中添加此网站的IP、域名对应关系:

185.199.108.133 raw.githubusercontent.com185.199.109.133 raw.githubusercontent.com185.199.110.133 raw.githubusercontent.com185.199.111.133 raw.githubusercontent.com

封装Icon组件

在项目中我们肯定不能拿来直接用,通常是封装成一个通用组件。

Icon.vue

<script setup>import { nextTick, ref, unref, computed, watch } from 'vue'import { renderSVG } from "@iconify/iconify"const props = defineProps({    icon: {      type: String,      require: true    },    size: {      type: Number,      default: 16    },    color: {      type: String,      default: ''    }})const elRef = ref('elRef')// 判断传入的icon的值是不是以 svg-icon: 开头,如果是代表的就是本地图标,反之,则是 Iconify 图标。const isLocal = computed(() => props.icon.startsWith('svg-icon:'))const symbolId = computed(() => {  return unref(isLocal) ? `#icon-${props.icon.split('svg-icon:')[1]}` : props.icon})const getIconifyStyle = computed(() => {  const { color, size } = props  return {    fontSize: `${size}px`,    color,    display: "inline-flex"  }})const updateIcon = async (icon) => {  const el = unref(elRef)  if (!el) return  await nextTick()  if (!icon) return  const svg = renderSVG(icon, {})  if (!svg) {    const span = document.createElement('span')    span.className = 'iconify'    span.dataset.icon = icon    el.textContent = ''    el.appendChild(span)  } else {    el.textContent = ''    el.appendChild(svg)  }}watch(  () => props.icon,   (icon) => { updateIcon(icon) })</script><template>    <ElIcon :size="size" :color="color">      <!-- 使用本地svg图标 -->      <svg v-if="isLocal" aria-hidden="true">        <use :xlink:href="symbolId" />      </svg>        <span v-else ref="elRef" :class="$attrs.class" :style="getIconifyStyle">          <span class="iconify" :data-icon="symbolId"></span>        </span>    </ElIcon></template><style lang="less">.el-icon {  width: auto;  height: auto;}</style>

使用组件

<template>    <Icon icon="mdi:content-copy"></Icon></template>

iconify离线使用-2

使用vue3才能使用的@iconify/vue,但是要么联网使用,要么开发时提供一个图标api服务。

安装

npm install @iconify/vue -S

使用

<script>import { Icon as IconifyIcon } from "@iconify/vue"</script><template><IconifyIcon icon="emojione-monotone:sun" /></template>

提供图标api服务可以在 GitHub 或者 gitee 上下载一个项目,下载地址如下,下载后根据 README.me 文档教程操作即可。

Github: https://github.com/xiaoxian521/iconify-offline-arrange
gitee: https://gitee.com/yiming_chang/iconify-offline-arrange

注意:这个项目运行时需要先全局安装 lerna 包管理工具。npm install lerna -g


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/89036.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 林晚夏江肆年(进错房,嫁给八零最牛特种兵在线阅读)全文免费阅读无弹窗大结局_(林晚夏江肆年)进错房,嫁给八零最牛特种兵在线阅读免费阅读全文最新章节列表_笔趣阁(林晚夏江肆年) -
  • 进错房,嫁给八零最牛特种兵完整版阅读小说(林晚夏江肆年)全文免费阅读无弹窗大结局_(进错房,嫁给八零最牛特种兵完整版阅读)林晚夏江肆年免费阅读全文最新章节列表_笔趣阁(进错房,嫁给八零最牛特种兵完整版阅读) -
  • 新雪藏旧事全文全文(商云萝周砚京)全文免费阅读无弹窗大结局_(新雪藏旧事全文小说免费阅读)最新章节列表_笔趣阁(新雪藏旧事全文) -
  • 在线免费小说重生七零替嫁:不嫁教授,嫁军官_乔珊珊乔婉月新热门小说_热门小说乔珊珊乔婉月
  • 免费小说《冯云漪厉晋泽》已完结(冯云漪厉晋泽)热门小说大结局全文阅读笔趣阁
  • 祁兰湘邵黎晖小说_祁兰湘邵黎晖完整版大结局小说免费阅读
  • 完整免费小说老公心疼青梅将她留宿新房,却将怀孕的我赶出家门(乔玥傅慎行姜禾)_老公心疼青梅将她留宿新房,却将怀孕的我赶出家门(乔玥傅慎行姜禾)完本小说免费阅读(乔玥傅慎行姜禾)
  • 新雪藏旧事:结局+番外+完结免费小说在线阅读_小说完结推荐新雪藏旧事:结局+番外+完结商云萝周砚京热门小说
  • 初逢青山梦长安(顾怀瑾沈书妤)阅读 -
  • 无删减版《绝对权力:从天崩开局走上官途巅峰》在线免费阅读
  • 《绝对权力:从天崩开局走上官途巅峰》小说在线试读,《绝对权力:从天崩开局走上官途巅峰》最新章节目录
  • 裴泽苏星辰何娇(满目星辰不及你小说)精彩章节在线阅读

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1