Stories

Detail Return Return

最好的svg使用方案(個人覺得) - Stories Detail

方案1:img

將svg作為img的src

import icon from './xxx.svg'

<img :src="icon">

無法很好的自定義尺寸,圖片會模糊(使用了img後,會喪失svg的特性)
無法指定顏色

方案2:插件

添加vite-svg-loader插件

找了好幾個常見的插件,比如vite-plugin-svg-icons、vite-plugin-svg-loader、unplugin-icons、iconify,感覺都不太好用,這些插件使用前都要在vite先中指定目錄,要不就是需要提前配置要使用的圖標,都不太好用。最後發現vite-svg-loader,感覺完美,記錄分享下。

配置:

// vite.config.js

import svgLoader from 'vite-svg-loader'

export default defineConfig({
  plugins: [
    vue(),
    svgLoader({
      defaultImport: "component"
    })
  ]
})

使用:

<script setup lang="ts">
import IconPlay from "@/assets/play.svg"
// @符號是我的路徑別名,如果你沒配置,則使用你的相對路徑就好
// 示例:import IconPlay from "./play.svg"
</script>

<template>
  <IconPlay class="play-icon" />
</template>

<style scoped>
.play-icon {
  width: 24px;
  height: 24px;
  color: #ffffff;
}
</style>

可以自定義尺寸,不會模糊
可以指定顏色

user avatar user_2dx56kla Avatar thosefree Avatar littlelyon Avatar 6fafa Avatar anchen_5c17815319fb5 Avatar hard_heart_603dd717240e2 Avatar u_16307147 Avatar dunizb Avatar zhulongxu Avatar it1042290135 Avatar hyfhao Avatar gaozhipeng Avatar
Favorites 42 users favorite the story!
Favorites

Add a new Comments

Some HTML is okay.