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

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

WBOY
풀어 주다: 2023-05-11 17:55:06
앞으로
1721명이 탐색했습니다.

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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿