>  기사  >  웹 프론트엔드  >  vue3+vite2에서 svg 메서드를 사용하는 방법

vue3+vite2에서 svg 메서드를 사용하는 방법

WBOY
WBOY앞으로
2023-05-11 17:55:061680검색

1. vite-plugin-svg-icons를 설치하세요

여기에 fast-glob 관련 종속성도 설치해야 합니다. 그렇지 않으면 vite에서 npm run dev

npm i fast-glob@3.x -D
npm i vite-plugin-svg-icons@2.x -D

2를 실행할 때 'fast-glob' 모듈을 찾을 수 없음 오류가 보고됩니다. src/comComponents/svgIcon 아래의 새 구성 요소 index.vue

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

3. tsconfig.json에

types 설정을 추가하여 여기에 나열된 모듈의 선언 파일만 로드됩니다. 두 개의 데모를 테스트했을 때 하나는 필요했고 다른 하나는 필요하지 않았습니다. 문제가 있으면

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

4. vite.config.ts에 구성 플러그인

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;,
    })
  ]
})

을 추가해 보세요. 5. main.ts 컴포넌트에 전역적으로 등록

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;)

6. 페이지에서

<template>
  <svg-icon icon-class="category"></svg-icon>
  <svg-icon icon-class="accountant" ></svg-icon>
</template>

사용 7. 파일 디렉터리 구조 및 효과 표시

vue3+vite2에서 svg 메서드를 사용하는 방법

위 내용은 vue3+vite2에서 svg 메서드를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제