vue3+vite項目中顯示SVG圖片

使用vite顯示本地svg圖標

????????vite-plugin-svg-icons是一個Vite插件,其作用是將SVG圖標文件轉換為Vue組件,以便在Vue項目中使用。

????????使用vite-plugin-svg-icons插件,可以將SVG圖標文件導入到項目中,并將其轉換為可復用的Vue組件。這樣,就可以像使用普通Vue組件一樣使用這些SVG圖標,包括在模板中直接使用、傳遞屬性、綁定事件等。

????????該插件還提供了一些額外的功能,如自動按需引入圖標、支持圖標的自定義命名、支持指定圖標大小等。

????????總之,vite-plugin-svg-icons插件的作用是簡化在Vue項目中使用SVG圖標的過程,提供了更加靈活和方便的方式來管理和使用這些圖標。

vite-plugin-svg-icons 安裝

node version:?>=12.0.0

vite version:?>=2.0.0

npm?i?vite-plugin-svg-icons?-D
//?或者
yarn?add?vite-plugin-svg-icons?-D
//?或者
pnpm install vite-plugin-svg-icons -D

配置使用vite-plugin-svg-icons

  • vite.config.ts 中的配置插件
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
import path from 'path'export default () => {return {plugins: [createSvgIconsPlugin({// 指定需要緩存的圖標文件夾iconDirs: [path.resolve(process.cwd(), 'src/icons')],// 指定symbolId格式symbolId: 'icon-[dir]-[name]',/*** 自定義插入位置* @default: body-last*/inject?: 'body-last' | 'body-first'/*** custom dom id* @default: __svg__icons__dom__*/customDomId: '__svg__icons__dom__',}),],}
}
  • 在 src/main.ts 內引入注冊腳本
import 'virtual:svg-icons-register'

到這里 svg 已經引入可以使用

如何在Vue 組件使用

/src/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>

icons 目錄結構

# src/icons- icon1.svg
- icon2.svg
- icon3.svg
- dir/icon1.svg

/src/App.vue

<template><div><SvgIcon name="icon1"></SvgIcon><SvgIcon name="icon2"></SvgIcon><SvgIcon name="icon3"></SvgIcon><SvgIcon name="dir-icon1"></SvgIcon></div>
</template><script>
import { defineComponent, computed } from 'vue'import SvgIcon from './components/SvgIcon.vue'
export default defineComponent({name: 'App',components: { SvgIcon },
})
</script>

優點:

  1. 可擴展性:vite-plugin-svg-icons 提供了靈活的配置選項,允許開發者自定義圖標的加載和使用方式。

  2. 輕量級:vite-plugin-svg-icons 是一個輕量級的插件,沒有額外的依賴,可以快速集成到現有的項目中。

  3. 性能優化:vite-plugin-svg-icons 可以將 SVG 圖標轉換為內聯的 Vue 組件,減少 HTTP 請求,提高頁面加載速度。

  4. 簡化開發流程:使用 vite-plugin-svg-icons,開發者可以直接在代碼中引用 SVG 圖標,無需手動處理 SVG 文件。

  5. 兼容性:vite-plugin-svg-icons 支持多種類型的 SVG 圖標,包括普通的 SVG 文件、Symbol 圖標和圖標字體等。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/696620.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/696620.shtml
英文地址,請注明出處:http://en.pswp.cn/news/696620.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

語文成績(洛谷)

題目 原題 題目背景 語文考試結束了&#xff0c;成績還是一如既往地有問題。 題目描述 語文老師總是寫錯成績&#xff0c;所以當她修改成績的時候&#xff0c;總是累得不行。她總是要一遍遍地給某些同學增加分數&#xff0c;又要注意最低分是多少。你能幫幫她嗎&#xff1f; 輸…

【springboot】 `@Column` 注解的使用

定義一個實體的屬性時&#xff0c;如果和數據庫的列名不一致的時候&#xff0c;需要用column 建立映射關系。 Column 是 Java 持久化 API&#xff08;Java Persistence API&#xff0c;JPA&#xff09;中的注解之一&#xff0c;用于指定實體類中屬性與數據庫表中列的映射關系。…

2024牛客(4)K題

登錄—專業IT筆試面試備考平臺_牛客網 using i64 long long; using ll long long; constexpr ll M 1e9 7; template<class Info> struct SegmentTree {int n;std::vector<Info> info;SegmentTree() : n(0) {}SegmentTree(int n_, Info v_ Info()) {init(n_, …

Vue樣式綁定

1. 綁定 HTML class ①通過class名稱的bool值判斷樣式是否被啟用 <template><!--通過樣式名稱是否顯示控制樣式--><div :class"{ haveBorder: p.isBorder, haveBackground-color: p.isBackgroundcolor }">此處是樣式展示區域</div><br /…

Linux篇:開發工具yum/vim/gcc/g++/Makefile/gdb

一. yum&#xff1a;軟件包管理器 什么是軟件包&#xff1f; 在Linux 下安裝軟件 , 一個通常的辦法是下載到程序的源代碼 , 并進行編譯 , 得到可執行程序 . 但是這樣太麻煩了, 于是有些人把一些常用的軟件提前編譯好 , 做成軟件包 (可以理解成windows 上的安裝程序) 放在…

Linux C++ 字符編碼轉換 GBK與UTF8互轉

Linux 下使用 iconv 命令可以轉換文件的編碼 iconv -f GBK -t UTF-8 input_file -o output_fileC 代碼 使用 iconv 函數 iconv 函數簽名&#xff1a; size_t iconv(iconv_t cd,、 char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft); 需要注意的是&…

Python基礎20 面向對象(3)多態、封裝、反射

文章目錄 一、多態1、什么是多態2、多態小實驗 二、封裝1、什么是封裝2、內部屬性的約定 三、反射1、什么是反射2、四個實現自省的函數&#xff08;1&#xff09;hasattr(object,name)&#xff08;2&#xff09;getattr(object,name,defaultNone)&#xff08;3&#xff09;seta…

神秘人暗訪:行政窗口為什么要開展神秘顧客調研

在競爭日益激烈的服務市場中&#xff0c;行政窗口作為公共服務的直接提供者&#xff0c;其服務質量的好壞直接關系到政府的形象和公眾對政府的信任度。為了更好地滿足市民的需求&#xff0c;提升服務質量&#xff0c;開展神秘顧客調查顯得尤為重要。神秘顧客調查的必要性包括以…

內網穿透的應用-如何本地部署Elasticsearch搜索分析引擎實現并發布公網遠程訪問

文章目錄 系統環境1. Windows 安裝Elasticsearch2. 本地訪問Elasticsearch3. Windows 安裝 Cpolar4. 創建Elasticsearch公網訪問地址5. 遠程訪問Elasticsearch6. 設置固定二級子域名 Elasticsearch是一個基于Lucene庫的分布式搜索和分析引擎&#xff0c;它提供了一個分布式、多…

探索Flask框架:打造優雅而強大的Web應用

在當今互聯網時代&#xff0c;Web應用的需求日益增長&#xff0c;而作為開發者&#xff0c;我們需要一個簡潔明快、靈活可擴展的框架來滿足這些需求。Flask框架作為一個Python微型框架&#xff0c;在其簡潔的設計理念和豐富的擴展生態系統之間找到了完美的平衡&#xff0c;為我…

洛谷--二分(Java實現)

洛谷 B3627 立方根 題目描述 給定正整數 n&#xff0c;求 √n?。答案向下取整。 輸入格式 僅一行&#xff0c;一個正整數 n。 輸出格式 僅一行&#xff0c;一個正整數&#xff0c;表示√n。向下取整輸出。 輸入輸出樣例 輸入 #1 27 輸出 #1 3 輸入 #2 100000 輸…

ORACLE之 decode函數

語法&#xff1a; DECODE(expression, search1, result1, search2, result2, ..., default_result) 其中&#xff0c;expression是要進行比較的表達式&#xff0c;search1, search2等是可能的值&#xff0c;result1, result2等是對應的結果。如果expression等于search1&#x…

Java類的成員、繼承、多態

當談論Java類的成員、繼承和多態時&#xff0c;我們談論的是面向對象編程的基本概念。讓我逐一介紹&#xff1a; 1. **成員**&#xff1a; - **字段&#xff08;Field&#xff09;**&#xff1a;也稱為屬性或變量&#xff0c;用于存儲對象的狀態信息。 - **方法&#xf…

防御保護第六次作業

需求: 8&#xff0c;分公司內部的客戶端可以通過域名訪問到內部的服務器 9&#xff0c;假設內網用戶需要通過外網的web服務器和pop3郵件服務器下載文件和郵件&#xff0c;內網的FTP服務器也需要接受外網用戶上傳的文件。針對該場景進行防病毒的防護。 10&#xff0c;我們需要針…

C++模板從入門到入土

1. 泛型編程 如果我們需要實現一個不同類型的交換函數&#xff0c;如果是學的C語言&#xff0c;你要交換哪些類型&#xff0c;不同的類型就需要重新寫一個來實現&#xff0c;所以這是很麻煩的&#xff0c;雖然可以cv一下&#xff0c;有了模板就可以減輕負擔。 下面寫一個適…

日常leetcode代碼思路總結(持續更新)

日常leetcode代碼思路總結&#xff08;持續更新&#xff09; 難易leecode題號題目描述思路簡單121. 買賣股票的最佳時機只準一次買賣0表示持有&#xff0c;1表示不持有&#xff1b;dp[0][i] max(dp[0][i-1], -prices[i])&#xff1b;dp[1][i] max(dp[1][i-1], dp[0][i] pric…

Openwrt刪除內核patch

環境說明 ubuntu-18.04 openwrt-21.02 安裝quilt sudo apt install quilt quilt指令說明 Usage: quilt [--trace[=verbose]] [--quiltrc=XX] command [-h] ...quilt --version Commands are:add fold mail refresh snapshotannotate fork new rem…

基于springboot+vue的中小企業設備管理系統(前后端分離)

博主主頁&#xff1a;貓頭鷹源碼 博主簡介&#xff1a;Java領域優質創作者、CSDN博客專家、阿里云專家博主、公司架構師、全網粉絲5萬、專注Java技術領域和畢業設計項目實戰&#xff0c;歡迎高校老師\講師\同行交流合作 ?主要內容&#xff1a;畢業設計(Javaweb項目|小程序|Pyt…

H 橋逆變方式介紹(雙極性)

單極性控制和雙極性控制是說IGBT四個管子的控制 前面所說的單極性控制是其中一個管子開通、關閉另外一個管子持續開通 而雙極性是四個管子中的兩個管子同時導通&#xff0c;同時關斷。彼此交替變化 所以當方波出現低電平時&#xff0c;是一對管子同時導通&#xff0c;出現高電…

2.21 Qt day2 菜單欄/工具欄/狀態欄/浮動窗口、UI界面、信號與槽

思維導圖 使用手動連接&#xff0c;將登錄框中的取消按鈕使用qt4版本的連接到自定義的槽函數中&#xff0c;在自定義的槽函數中調用關閉函數 將登錄按鈕使用qt5版本的連接到自定義的槽函數中&#xff0c;在槽函數中判斷ui界面上輸入的賬號是否為"admin"&#xff0c;…