Rumah > hujung hadapan web > View.js > teks badan

Bagaimana untuk menggunakan kaedah svg dalam vue3+vite2

WBOY
Lepaskan: 2023-05-11 17:55:06
ke hadapan
1679 orang telah melayarinya

1. Pasang vite-plugin-svg-icons

Anda juga perlu memasang kebergantungan berkaitan fast-glob Jika tidak, apabila vite menjalankan npm run dev, ia akan melaporkan ralat Tidak dapat mencari modul 'fast-. glob’

npm i fast-glob@3.x -D
npm i vite-plugin-svg-icons@2.x -D
Salin selepas log masuk

2. Cipta index.vue komponen baharu di bawah src/components/svgIcon

<template>
  <svg aria-hidden="true" class="svg-icon">
    <use :xlink:href="symbolId" rel="external nofollow"  :fill="color" />
  </svg>
</template>

<script setup lang="ts">
import { computed } from &#39;vue&#39;;

const props = defineProps({
  prefix: {type: String,default: &#39;icon&#39;,},
  iconClass: {type: String,required: true,},
  color: {type: String,default: &#39;&#39;}
})

const symbolId = computed(() => `#${props.prefix}-${props.iconClass}`);
</script>

<style scoped>
.svg-icon {
  width: 1em;
  height: 1em;
  vertical-align: -0.15em;
  overflow: hidden;
  fill: currentColor;
}
</style>
Salin selepas log masuk

3. Tambah tetapan dalam tsconfig.json

jenis digunakan untuk menentukan modul yang perlu disertakan , hanya fail pengisytiharan modul yang disenaraikan di sini akan dimuatkan. Ia tidak perlu untuk menambahnya. Apabila saya menguji dua demo, satu diperlukan dan satu lagi tidak. Jika anda menghadapi sebarang masalah, anda boleh cuba menambah

{
  "compilerOptions": {
    "types": ["vite-plugin-svg-icons/client"]
  }
}
Salin selepas log masuk

4. Pemalam konfigurasi

import { resolve } from &#39;path&#39;
import { createSvgIconsPlugin } from &#39;vite-plugin-svg-icons&#39;

export default defineConfig({
  plugins: [
    createSvgIconsPlugin({
      // 指定需要缓存的图标文件夹
      iconDirs: [resolve(process.cwd(), &#39;src/assets/imgs/svg&#39;)],
      // 指定symbolId格式
      symbolId: &#39;icon-[dir]-[name]&#39;,
    })
  ]
})
Salin selepas log masuk
.

dalam vite.config.ts 5. Daftarkan komponen secara global

import { createApp } from &#39;vue&#39;
import App from &#39;./App.vue&#39;
import router from &#39;@/router&#39;
import { store, key } from &#39;@/store&#39;

const app = createApp(App)

import &#39;virtual:svg-icons-register&#39; // 引入注册脚本
import SvgIcon from &#39;@/components/svgIcon/index.vue&#39; // 引入组件
app.component(&#39;svg-icon&#39;, SvgIcon)

app.use(router).use(store, key).mount(&#39;#app&#39;)
Salin selepas log masuk

dalam main.ts 6. Gunakan

<template>
  <svg-icon icon-class="category"></svg-icon>
  <svg-icon icon-class="accountant" ></svg-icon>
</template>
Salin selepas log masuk

di halaman 7. Struktur direktori fail dan paparan kesannya

Bagaimana untuk menggunakan kaedah svg dalam vue3+vite2

Atas ialah kandungan terperinci Bagaimana untuk menggunakan kaedah svg dalam vue3+vite2. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan