IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 自动导入并解析Icon【插件使用、Vue3、Vue-cli】 -> 正文阅读

[JavaScript知识库]自动导入并解析Icon【插件使用、Vue3、Vue-cli】

问题描述

当前项目中,需要用到很多Icon,每次都需要导入和解析Icon会显得很麻烦。
而且当前使用的naiveUI使用Icon显得比较呆板,需要n-icon嵌套后,再放入组件或者svg格式图片
在这里插入图片描述

但是,现在我想直接想这样使用。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XbPMTnsn-1652546417758)(assets/image-20220514120443-rkd7e5v.png)]

解决方法

1.安装对应的两个插件

可能出现的问题

npm WARN read-shrinkwrap This version of npm is compatible with lockfileVersion@1, but package-lock.

  • unplugin-icons

    npm install unplugin-icons -D
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rWV4wdUC-1652546417759)(assets/安装unplugin-icons-20220514193801-uoctm1m.png)]

    需要等待一段时间…有一点点久…才能安装成功

  • unplugin-vue-components

    npm install unplugin-vue-components -D
    

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t5y25AvG-1652546417759)(assets/安装unplugin-vue-components-20220514201336-nqxba6h.png)]

2.Vue-cli配置插件

在安装两个对应的插件后,需要导入

  • unplugin-icons/webpack
  • unplugin-icons/resolver
  • unplugin-vue-components/webpack

因为vue-cli是使用内置webpack进行打包的,所以需要导入的webpack

若使用的为vite导入对应的vite即可

打开项目中的vue.config.js,将下方代码复制即可

const {
  defineConfig,
} = require("@vue/cli-service");
const path = require("path");
const Icons = require('unplugin-icons/webpack')
const IconResolver = require('unplugin-icons/resolver')
const Components = require('unplugin-vue-components/webpack')

function resolve(dir) {
  /**
   * __dirname:当前文件夹所在的绝对路径
   */
  return path.join(__dirname, dir);
}

module.exports = defineConfig({
  transpileDependencies: true,
  // 使打出来的包可以被部署在任意路径
  publicPath: process.env.NODE_ENV === "production" ? "./" : "/",
  configureWebpack: {
    plugins: [
      Components({
        dts: false,// 不生成component.d.ts
        resolvers: [IconResolver({ componentPrefix: 'icon' })] // 遇到前缀为icon自动解析
      }),
      Icons({ compiler: 'vue3', scale: 1, defaultClass: 'inline-block', autoInstall: true }) 
	// 自动安装 + 默认类名
    ]
  }
});

若将dts打开,则会生成文件components.d.ts

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2tyUvEa8-1652546417760)(assets/image-20220515002637-v3mgcid.png)]

3.在项目中使用

①寻找自己所需要的icon名称

Ic?nes (icones.js.org)——简略版

Icon Sets ? Iconify——详细版

现在我找到对应的icon名字为gridicons:fullscreen-exit

在这里插入图片描述

②加上icon前缀

直接以icon为前缀,直接在后面添加名称——自动安装

:直接以-代替

<template>
  <hover-containter class="w-40px h-full" tooltip-content="全屏" @click="toggle">
    <icon-gridicons-fullscreen-exit v-if="isFullscreen" class="text-18px" />
    <icon-gridicons-fullscreen v-else class="text-18px" />
  </hover-containter>
</template>

<script setup lang='ts'>
import { useFullscreen } from '@vueuse/core';
import { HoverContainter } from '@components/BasicComponents/common/index';

const { isFullscreen, toggle } = useFullscreen()
</script>

<style scoped>
</style>

最后呈现的结果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-evUWk161-1652546417760)(assets/image-20220515003903-5k8aie1.png)]


OK~

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-21 18:52:15  更:2022-05-21 18:54:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:04:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码