vue.js에서 아이콘을 관리하는 것은 까다로울 수 있습니다. 아이콘 글꼴은 편리하지만 사용자 정의 유연성이 부족하며 이진 특성으로 인해 버전 제어가 악몽이 될 수 있습니다. SVG는 우수한 솔루션을 제공하지만 사용 편의성과 효율적인 관리에는 신중한 접근이 필요합니다.
이 기사는 단순성과 유지 관리에 중점을 둔 vue.js 응용 프로그램을위한 이상적인 SVG 아이콘 시스템을 제시합니다.
- 아이콘 추가/제거 : 지정된 폴더에서 SVG를 추가하거나 삭제하기 만하면됩니다.
- 사용법 : 간단한 구문으로 템플릿에서 아이콘을 사용합니다
<svg-icon icon="rocket"></svg-icon>
. - 스타일링 : CSS
font-size
및color
특성을 사용하여 스케일 및 컬러 아이콘, 아이콘 글꼴 동작을 모방합니다. - 최적화 : 동일한 아이콘의 여러 인스턴스에 대한 SVG 코드 복제를 피합니다.
- 웹 팩 통합 : 웹 팩 구성 변경이 필요하지 않습니다.
이 시스템은 두 개의 작은 단일 파일 VUE 구성 요소를 사용하여 구축되며 다음을 필요로합니다.
- Webpack : Vue Cli를 사용하는 경우 가정했습니다.
-
svg-inline-loader
:npm install svg-inline-loader --save-dev
. 이 로더는 SVG 코드의 불필요한 부분을 정리합니다.
SVG 스프라이트 구성 요소 ( SvgSprite.vue
)
SVG 코드 반복을 방지하기 위해 다른 모든 SVG 아이콘이 포함 된 숨겨진 SVG 인 SVG 스프라이트를 만듭니다. 아이콘은<use></use>
아이콘 ID를 참조하는 태그 :<svg><use xlink:href="#rocket"></use></svg>
. SvgSprite
구성 요소는 이것을 구현합니다.
<template> <svg height="0" style="display: none;" v-html="$options.svgSprite" width="0"></svg> </template> <script> const svgContext = require.context( '!svg-inline-loader?' 'removeTags=true' // Remove title tags, etc. '&removeSVGTagAttrs=true' // Remove attributes '&removingTagAttrs=fill' // Remove fill attributes '!@/assets/icons', // Icon directory true, // Search subdirectories /\w \.svg$/i // Only include SVG files ); const symbols = svgContext.keys().map(path => { const id = path.replace(/^\.\/(.*)\.\w $/, '$1'); // Extract ID from filename const content = svgContext(path); // Get SVG content return content.replace('<svg', `<symbol id="${id}"`).replace('svg>', 'symbol>'); // Convert to symbol }); export default { name: 'SvgSprite', svgSprite: symbols.join('\n'), // Concatenate symbols }; </script>
템플릿에는 숨겨진 것을 포함합니다<svg></svg>
컨텐츠가 $options.svgSprite
에 의해 동적으로 생성되는 요소 .svgsprite. 스크립트는 svg-inline-loader
사용하여 require.context
사용하여 SVG를 처리하고 불필요한 태그와 속성을 제거합니다. 그런 다음 각 SVG를 a로 변환합니다<symbol></symbol>
고유 한 ID 추가 요소.
이 구성 요소를 App.vue
파일의 상단에 배치하십시오.
아이콘 구성 요소 ( SvgIcon.vue
)
SvgIcon
구성 요소는 더 간단합니다<use></use>
스프라이트에서 아이콘을 참조하는 태그 :
<template> <svg class="icon" :class="{ 'icon-spin': spin }"> <use :xlink:href="`#${icon}`"></use> </svg> </template> <script> export default { name: 'SvgIcon', props: { icon: { type: String, required: true }, spin: { type: Boolean, default: false }, }, }; </script> <style scoped> svg.icon { fill: currentColor; height: 1em; margin-bottom: 0.125em; vertical-align: middle; width: 1em; } svg.icon-spin { animation: icon-spin 2s infinite linear; } @keyframes icon-spin { from { transform: rotate(0deg); } to { transform: rotate(359deg); } } </style>
CSS는 아이콘 스타일을 아이콘 글꼴처럼 작동하여 쉽게 색상과 크기 조정을 가능하게합니다. spin
소품은 애니메이션을 추가합니다.
이 구성 요소를 main.js
에 등록하십시오.
'vue'에서 Vue 가져 오기 '@/components/svgicon.vue'에서 svgicon 가져 오기 vue.component ( 'svg-icon', svgicon)
이 시스템은 vue.js 응용 프로그램에서 SVG 아이콘을 관리하기위한 깨끗하고 효율적이며 쉽게 유지 관리 가능한 솔루션을 제공합니다. 추가 개선에는 비 선명 종횡비 처리 및 더 넓은 프레임 워크/빌드 도구 호환성이 포함될 수 있습니다.
위 내용은 VUE 용 글꼴 모양의 SVG 아이콘 시스템의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

CSS Box-Shadow 및 개요 속성은 주제를 얻었습니다. 실제 테마에서 어떻게 작동하는지에 대한 몇 가지 예와 이러한 스타일을 WordPress 블록 및 요소에 적용 해야하는 옵션을 보자.

Svelte Transition API는 맞춤형 전환을 포함하여 문서를 입력하거나 떠날 때 구성 요소를 애니메이션하는 방법을 제공합니다.

이 기사에서 우리는 스크롤 바의 세계로 뛰어들 것입니다. 너무 화려하게 들리지는 않지만 잘 설계된 페이지가 손을 잡고 있습니다.

웹 사이트의 컨텐츠 프레젠테이션을 설계하는 데 얼마나 많은 시간을 소비합니까? 새 블로그 게시물을 작성하거나 새 페이지를 만들 때

최근 Bitcoin의 가격이 20k 달러가 넘는 USD가 최근에 등반되면서 최근 30k를 끊었으므로 Ethereum을 만드는 데 깊이 다이빙을 할 가치가 있다고 생각했습니다.

NPM 명령은 서버 시작 또는 컴파일 코드와 같은 것들에 대한 일회성 또는 지속적으로 실행되는 프로세스로 다양한 작업을 실행합니다.

나는 다른 날에 Eric Meyer와 대화를 나누고 있었고 나는 내 형성 시절부터 Eric Meyer 이야기를 기억했습니다. CSS 특이성에 대한 블로그 게시물을 썼습니다


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

WebStorm Mac 버전
유용한 JavaScript 개발 도구
