iconify图标使用

这篇具有很好参考价值的文章主要介绍了iconify图标使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

  1. 安装依赖

    npm install @iconify/iconify -S
    npm install vite-plugin-purge-icons @iconify/json -D
    
  2. 配置vite.config.js文件

    // vite.config.js
    import PurgeIcons from 'vite-plugin-purge-icons'
    
    export default {
      plugins: [
        PurgeIcons({
          /* PurgeIcons Options */
        })
      ]
    }
    
  3. 在入口文件导入(可能会有 raw.githubusercontent.com 相关错误,详细说明

    // main.js
    import '@purge-icons/generated'
    
  4. 标签使用

    <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.com
185.199.109.133 raw.githubusercontent.com
185.199.110.133 raw.githubusercontent.com
185.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服务。

  1. 安装

    npm install @iconify/vue -S
    
  2. 使用

    <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文章来源地址https://www.toymoban.com/news/detail-456335.html

到了这里,关于iconify图标使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp离线引入阿里巴巴图标

    阿里巴巴图标地址

    2024年02月16日
    浏览(75)
  • 保姆级教程,在离线环境下搭建zimbra8.8.15(open source)邮件服务器,centos7.6,在线也可参考使用

            现在我要在一台离线服务器上部署zimbra,但由于目前新版本安装包依赖网络环境来下载一些必需的组件,导致我们在官网下载好的安装包不能在离线服务器上完整安装zimbra,本文来帮助要在离线环境中部署zimbra的朋友完成安装,当然在线安装也可以参考本文,除了

    2024年03月13日
    浏览(102)
  • C/C++中文参考手册离线最新版

    最近又用回C/C++刷题,回想上一年还在用Java,C/C++才是世界上最好的语言(纯属调侃)。哼哼,不许反驳。 想分享我正在使用的C/C++中文参考手册离线最新版给大家,需要的朋友们可以自行下载(free的哦)。感谢客官们观看。(respect) 下载入口: C/C++中文参考手册离线最新

    2023年04月09日
    浏览(51)
  • uniapp-uView在离线状态下无法显示icon图标的问题

    1、修改uview-ui下的u-icon.vue配置文件,一般目录在 uni_modulesuview-uicomponentsu-iconu-icon.vue 2、源文件引入的是阿里巴巴的icon https://at.alicdn.com/t/font_2225171_8kdcwk4po24.ttf 3、根据这个网址下载这个.ttf格式的字体文件 4、把这个.ttf文件转为base64格式,转换网址:https://transfonter.org/ 5、你

    2023年04月17日
    浏览(40)
  • 【SU-03T离线语音模块】:学习配置使用

    时不可以苟遇,道不可以虚行。 语音识别模块是在一种基于嵌入式的语音识别技术的模块,主要包括语音识别芯片和一些其他的附属电路,能够方便的与主控芯片进行通讯,开发者可以方便的将该模块嵌入到自己的产品中使用,实现语音交互的目的。 离线语音模块 与 在线语

    2023年04月09日
    浏览(42)
  • Python爬取MidJourney历史图片【仅供参考学习使用】

    使用MidJourney时, 在https://www.midjourney.com/app/这里有接口https://www.midjourney.com/api/app/recent-jobs/?amount=35dedupe=truejobStatus=completedjobType=upscaleorderBy=newpage=3prompt=undefinedrefreshApi=0searchType=advancedservice=nulltoDate=2023-06-16+09%3A50%3A17.379092type=alluserId=b12e169c-f609-4fd6-b917-11c2deaa8cffuser_id_ranked_score=n

    2024年02月13日
    浏览(56)
  • 【大数据进阶第三阶段之Datax学习笔记】使用阿里云开源离线同步工具DataX 实现数据同步

    【大数据进阶第三阶段之Datax学习笔记】阿里云开源离线同步工具Datax概述  【大数据进阶第三阶段之Datax学习笔记】阿里云开源离线同步工具Datax快速入门   【大数据进阶第三阶段之Datax学习笔记】阿里云开源离线同步工具Datax类图 【大数据进阶第三阶段之Datax学习笔记】使

    2024年01月24日
    浏览(59)
  • Vue+Vite项目初建(axios+Unocss+iconify)

    npx --package @vue/cli vue 项目成功启动后,进入http://localhost:3200,即可进入创建好的页面(假设启动端口为3200) 假设有本地服务器地址localhost:8000提供接口服务,接口为localhost:8000/token,修改代码 执行代码,如果后端服务器执行正常,就会有相应的返回值 npm install -D unocss 修改 vit

    2024年02月19日
    浏览(40)
  • CSS学习(3) - 轮廓文本和字体图标

    文章首发于我的个人博客:欢迎大佬们来逛逛 轮廓是在元素的周围绘制一条线,用于修饰元素框。 CSS 拥有如下轮廓属性: outline-style outline-color outline-width outline-offset outline outline-style 用于设置轮廓的样式: dotted - 定义点状的轮廓。 dashed - 定义虚线的轮廓。 solid - 定义实线的

    2023年04月20日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包