首页 > 其他分享 >nuxt3批量引入svg文件

nuxt3批量引入svg文件

时间:2022-11-14 11:25:47浏览次数:68  
标签:批量 icons default svg nuxt3 import vite plugin

nuxt3引入svg的方法和viet的差不多,只是细节上有些不同

同样是两步,引入svg组件和引入svg文件

第一步:引入svg组件

在components文件夹下创建SvgIcon.vue组件

<template>
    <svg aria-hidden="true">
        <use :xlink:href="symbolId" :fill="color" />
    </svg>
</template>

<script>
import { defineComponent, computed } from 'vue'

export default defineComponent({
    name: 'SvgIcon',
    props: {
        prefix: {
            type: String,
            default: 'icon',
        },
        name: {
            type: String,
            required: true,
        },
        color: {
            type: String,
            default: '#333',
        },
    },
    setup(props) {
        const symbolId = computed(() => `#${props.prefix}-${props.name}`)
        return { symbolId }
    },
})
</script>

在plugins文件夹下创建svgicon.client.ts引入

import svgIcon from '@/components/SvgIcon.vue'
export default defineNuxtPlugin(nuxtApp => {
    nuxtApp.vueApp.component('svg-icon', svgIcon)
})

第二步:引入svg文件

这里用到vite-plugin-svg-icons这个库,官方介绍:https://github.com/vbenjs/vite-plugin-svg-icons/blob/main/README.zh_CN.md

npm i vite-plugin-svg-icons -D

在nuxt.config.ts里面添加以下内容,注意文件夹路径要填对

import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
import path from 'path'
export default defineNuxtConfig({
...
    vite: {
        plugins: [
            createSvgIconsPlugin({
                iconDirs: [path.resolve(process.cwd(), 'assets/svg')]
            })
        ],
    }
...
})

在plugins文件夹下的svgicon.client.ts文件中添加注入脚本

import 'virtual:svg-icons-register'

如果使用 Typescript,你可以在tsconfig.json内添加

// tsconfig.json
{
  "compilerOptions": {
    "types": ["vite-plugin-svg-icons/client"]
  }
}

第三步:使用

传入svg文件夹中的名称就可以了

 

 效果

 

标签:批量,icons,default,svg,nuxt3,import,vite,plugin
From: https://www.cnblogs.com/lovewhatIlove/p/16879581.html

相关文章

  • 批量转换MP3
    find.-name"*mp4"|grepmp4>.0001whilereadlinedoecho"$line"":copying-----"Vpath_name="$line"cp-rp"$line".done<.0001ls|grepm......
  • SqlBulkCopy(批量复制)方法,高性能批量插入数据
    https://blog.51cto.com/u_15162069/2751372https://blog.csdn.net/five_s/article/details/115213102SQLServer批量插入数据方案SqlBulkCopy相较于Insert语句而言......
  • chrome浏览器 开发者工具F12中某网站的sources下的源码如何批量保存
    1.常用保存Sources源码的两种方法1.1单个文件直接右键另存为1.2单个页面保存网页,就会把引用到的所有文件下载下来如果页面很多,文件也很多,静态资源也很多,那么得一......
  • 28、批量实现txt文件内容合并
    题目:  在many_org文件夹中有三个.txt文件,如何将三个文件的内容整理到一个文件里?思路:  1、遍历路径下的所有文件。  2、判断出.txt文件,将其所有内容保存至新列表......
  • 文件批量重命名
    批量重命名一、背景我从网上下载了一部电视剧《琅琊榜》,存放在了E:/琅琊榜目录下:但有没有发现片名好长好长,这严重影响了我的观看体验,我该怎样才能将片名中的「未删减......
  • 发现一款音频批量下载小工具,喜欢的喜马拉雅音频都能直接下到自己的硬盘里
    最近发现了一款音频下载工具,解决了我多年的困惑。因为喜欢喜马拉雅的好多连载小说,所以购买了VIP,手机里实在装不下了,但又没法存储在硬盘里。最近用了一款音频下载小工具,找......
  • 记录nuxt3爬坑,vitest配置,autoimport等问题
    记录日期2022.11.11项目基于vitesse-nuxt3package.json、nuxt.config.ts、vitest.config.ts配置放在结尾项目版本nuxt版本:3.0.0-rc.13-27772354.a0a59e2@nuxt/test-u......
  • 喜“赢”双十一,SOLIDWORKS批量编码器工具免费送!
    为了答谢广大新老朋友的关注与支持,值此双十一来临之际,SolidKits免费发放100套专业版SOLIDWORKS批量编码器工具,活动期间下载并安装SolidKits.BatchCoding批量编码器工具,即......
  • python代码批量压缩图片
    python代码批量压缩图片以下代码用于批量压缩png/jpg格式的图片文件,遇到报错就使用pip大法安装一下对应的类库就可以了dynamic_quality.pyimportPIL.Imagefrommathi......
  • 开源一段 Mac 批量压缩图片的脚本
    近日处理了一批照片,现在分享一下如何在mac平台进行图片批量处理。0、安装xCode命令行工具,需要确定电脑上已经安装了xCode,如果没有,自己去AppStore里面搜索就看到了。......