首页 > 其他分享 >图标离线

图标离线

时间:2024-02-20 18:22:53浏览次数:26  
标签:const 离线 iconify https import 图标 com icon

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. 安装依赖文章来源地址https://www.yii666.com/blog/456335.html文章来源地址:https://www.yii666.com/blog/456335.html

    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组件

在项目中我们肯定不能拿来直接用,通常是封装成一个通用组件。网址:yii666.com<

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>

使用组件网址:yii666.com

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

iconify离线使用-2

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

  1. 安装文章地址https://www.yii666.com/blog/456335.html

    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

标签:const,离线,iconify,https,import,图标,com,icon
From: https://www.cnblogs.com/zhyp/p/18023759

相关文章

  • 解决方案 | 笔记本电脑能连上WIFI,但是无Internet显示地球图标,怎么回事?(win10)
    一、背景任务栏托盘区显示地球图标,但是实际上可以上网。   疑难诊断一般是这种情况: 二、可能的有效解决方案 0方案0:使用360断网急救箱傻瓜式修复个人制作|360断网急救箱新版-2.0版单文件绿色版分享(解决99%的电脑无法上网问题)https://www.cnblogs.com/issacne......
  • 【macOS】macOS重置文件关联图标
    ✨方案一打开Terminal运行以下命令sudorm-rf/Library/Caches/com.apple.iconservices.store重启。✨方案二下载安装OnyXhttps://www.titanium-software.fr/en/onyx.html维护->实用工具->重建勾选LaunchServices数据库执行。✨参考及引用https://www.zh......
  • 生成离线的XML
    之前遇到了一个需求,原本的一个XML打开时需要依赖于多个文件,现在想要将这个文件做成一个离线可用文件我的第一反应是将XML以及依赖文件打个包,下载包后,用浏览器打开XML文件,依赖文件与XML文件在同一个目录,应该就可以了XML中引用的xsl代码如下:但万万没想到,用浏览器打开本地XML文件......
  • CentOS7 离线安装 Docker
    对于一些安全性要求比较高的项目,服务器一般都是内网,无法联网。如果直接在物理机或虚拟机上部署项目,一方面比较麻烦,另外风险也比较高,如果出现了一些问题,最坏的情况就是重置操作系统,然后重新部署,耗时费力。还是采用docker部署会比较方便,我们可以在外部可以联网的机器上把项目部署......
  • wsl 离线安装
    winstroe经常没速度linux18:http://tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/96c69c93-9025-4584-8c39-15922b118041?P1=1707970139&P2=404&P3=2&P4=fqKAUeXVqiLA%2F7vtlXgbs2f8I3f65xAaTYC15Rl9vM4xLI%2BtYVj%2BxTKSadGgnrXTh4vVo3E%2BVqj3%2F......
  • 离线AI聊天清华大模型(ChatGLM3)本地搭建指南
    随着人工智能技术的飞速发展,聊天机器人成为了一个热门的研究领域。清华大学研发的ChatGLM3模型,作为其中的佼佼者,为开发者提供了强大的自然语言处理能力。本文将指导您如何在本地搭建ChatGLM3模型,实现离线AI聊天功能。一、前置准备在开始搭建之前,您需要准备以下物品:一台性能良......
  • Win10任务栏图标居中
    win+q键搜索并打开字符映射表点击第五行的空白字符,然后先后点击下方的选择以及复制在桌面新建一个文件夹,然后重命名,将刚才复制的空白字符粘贴进去,如图,这样我们就拥有了一个空白名称的文件夹在任务栏右键→工具栏→新建工具栏→在弹出的对话框中选择刚才新建的空白文件夹,接......
  • 图标异常修复
    windows图标异常修复显示白色图标如何修复?win+r->cmd->输入以下命令taskkill/imexplorer.exe/fcd/d%userprofile%\appdata\localdeliconcache.db/astartexplorer.exeexit欢迎关注公-众-号【TaonyDaily】、留言、评论,一起学习。Don’treinventthewh......
  • 如何导出 Visual Studio Code 的扩展应用,并离线安装?
    1.离线情形VisualStudioCode的扩展应用安装位置在文件夹.vscode/extensions下。不同平台,它位于:Windows%USERPROFILE%.vscode\extensionsMac~/.vscode/extensionsLinux~/.vscode/extensions离线使用时,直接复制粘贴即可。2.有网情况方法1:账号同步使用VisualStudio......
  • vue3 动态加载el-icon图标
    https://element-plus.org/zh-CN/component/icon.html静态示例<el-icon><Menu/></el-icon>动态示例Menu为图标名称,可替换,注意是字符串<el-icon><component:is="Menu"/></el-icon>在菜单列表中使用,渲染出每个菜单不同的图标<el-menu:default-act......