vue項(xiàng)目引入svg圖標(biāo)的完整步驟
1. 安裝svg依賴
在vue中首先需要安裝可以加載svg的依賴。
npm安裝:npm install svg-sprite-loader --save-dev
2. 創(chuàng)建svg文件夾存放svg圖標(biāo)
創(chuàng)建icons文件夾,在icons文件夾下創(chuàng)建svg文件夾存放本地svg圖標(biāo)。
3. vue.config.js 中配置svg圖片
vue.config.js代碼:
const path = require('path') module.exports = { chainWebpack:config=>{ // svg圖標(biāo)加載 config.module .rule('svg') .exclude.add(path.join(__dirname, 'src/assets/icons/svg')) .end() config.module .rule('icons')// 定義一個名叫 icons 的規(guī)則 .test(/\.svg$/)// 設(shè)置 icons 的匹配正則 .include.add(path.join(__dirname,'src/assets/icons/svg'))// 設(shè)置當(dāng)前規(guī)則的作用目錄,只在當(dāng)前目錄下才執(zhí)行當(dāng)前規(guī)則 .end() .use('svg-sprite')// 指定一個名叫 svg-sprite 的 loader 配置 .loader('svg-sprite-loader')// 該配置使用 svg-sprite-loader 作為處理 loader .options({// 該 svg-sprite-loader 的配置 symbolId:'icon-[name]' }) .end() } }
include.add(路徑)–路徑不正確會報以下錯誤:
4. 創(chuàng)建index.js 導(dǎo)入所有svg圖標(biāo)
icons文件夾創(chuàng)建index.js 自動導(dǎo)入所有svg圖標(biāo)。
icons/index.js代碼:
const req = require.context('@/assets/icons/svg',false,/\.svg$/) const requireAll = requireContext =>{ // requireContext.keys()數(shù)據(jù):['./404.svg', './agency.svg', './det.svg', './user.svg'] requireContext.keys().map(requireContext) } requireAll(req)
執(zhí)行 requireContext.keys().map(requireContext)得到返回的數(shù)據(jù):
5. main.js中引入icons/index.js
6. 創(chuàng)建SvgIcon公用組件
SvgIcon/index.vue代碼:
<template> <i v-if="iconFileName.indexOf('el-icon-') === 0" :class="iconFileName" /> <svg v-else class="svg-icon" aria-hidden="true" v-on="$listeners"> <use :xlink:href="`#icon-${iconFileName}`" rel="external nofollow" /> </svg> </template> <script> export default { name: 'SvgIcon', props: { iconFileName: { type: String, required: true } } } </script> <style scoped> .svg-icon { width: 1em; height: 1em; overflow: hidden; vertical-align: -0.15em; fill: currentColor; } </style>
全局注冊SvgIcon組件:
使用SvgIcon組件:
使用require.context實(shí)現(xiàn)前端工程自動化
總結(jié)
到此這篇關(guān)于vue項(xiàng)目引入svg圖標(biāo)的文章就介紹到這了,更多相關(guān)vue項(xiàng)目引入svg圖標(biāo)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue-element-admin?導(dǎo)出json和導(dǎo)入json文件的方法
這篇文章主要介紹了Vue-element-admin導(dǎo)出json和導(dǎo)入json文件,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-06-06vuex實(shí)現(xiàn)數(shù)據(jù)持久化的兩種方案
這兩天在做vue項(xiàng)目存儲個人信息的時候,遇到了頁面刷新后個人信息數(shù)據(jù)丟失的問題,在查閱資料后,我得出兩種解決數(shù)據(jù)丟失,使用數(shù)據(jù)持久化的方法,感興趣的小伙伴跟著小編一起來看看吧2023-08-08vue項(xiàng)目查看vue版本及cli版本的實(shí)現(xiàn)方式
這篇文章主要介紹了vue項(xiàng)目查看vue版本及cli版本的實(shí)現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10vue項(xiàng)目中openlayers繪制行政區(qū)劃
這篇文章主要為大家詳細(xì)介紹了vue項(xiàng)目中openlayers繪制行政區(qū)劃,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-12-12vue中使用Cesium加載shp文件、wms服務(wù)、WMTS服務(wù)問題
這篇文章主要介紹了vue中使用Cesium加載shp文件、wms服務(wù)、WMTS服務(wù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05vue.prototype和vue.use的區(qū)別和注意點(diǎn)小結(jié)
這篇文章主要介紹了vue.prototype和vue.use的區(qū)別和注意點(diǎn)小結(jié),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04vue-cli 腳手架基于Nightwatch的端到端測試環(huán)境的過程
這篇文章主要介紹了vue-cli 腳手架基于Nightwatch的端到端測試環(huán)境的過程,需要的朋友可以參考下2018-09-09vue實(shí)現(xiàn)導(dǎo)航欄效果(選中狀態(tài)刷新不消失)
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)導(dǎo)航欄效果,選中狀態(tài)刷新不消失,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-12-12