Vue 기반 사용자 정의 구성 요소 도입 아이콘
프로젝트 개발 에서 아이콘 을 사용 하 는 방식 은 여러 가지 가 있 습 니 다.iconfont에서 적당 한 아이콘 을 찾 을 수 있 습 니 다.http 또는 직접 다운로드 해서 사용 할 수 있 습 니 다.여기 서 저 는 사용자 정의 구성 요 소 를 실현 하 는 방식 으로 아이콘 을 도입 하 는 것 을 공유 합 니 다.
환경 을 조성 하 다
이 곳 은@vue/cli 4.5.13 새 항목 을 통 해 svg-sprite-loader 에 의존 하여 대응 하 는 svg 아이콘 을 처리 하여 사용 할 수 있 도록 설치 해 야 합 니 다.
설치:
npm install --save-dev svg-sprite-loader
vue.config.js 설정svg-sprite-loader 를 설치 한 후 vue.config.js 를 새로 만들어 의존 도 를 설정 합 니 다:
// vue.config.js
const { resolve } = require('path')
module.exports = {
chainWebpack(config) {
config
.module
.rule('svg')
.exclude
.add(resolve('src/icons'))
.end()
config
.module
.rule('icons')
.test(/\.svg$/)
.include
.add(resolve('src/icons'))
.end()
.use('svg-sprite-loader')
.loader('svg-sprite-loader')
.options({
symbolId: 'icon-[name]'
})
}
}
chain Webpack 을 통 해 두 가지 설정 을 만 들 었 습 니 다.components 디 렉 터 리 에 SvgIcon.vue 파일 을 새로 만 듭 니 다:
<template>
<i class="icon">
<!-- aria-hidden, ( ) -->
<svg aria-hidden="true" :width="size" :height="size" :fill="fillColor">
<use :xlink:href="iconName" rel="external nofollow" ></use>
</svg>
</i>
</template>
<script lang="ts">
import { PropType, toRefs } from 'vue'
export default {
props: {
size: {
type: Number as PropType<number>,
default: 14
},
fillColor: {
type: String as PropType<string>,
default: '#000'
},
iconName: {
type: String as PropType<string>,
required: true
}
},
setup(props: any) {
const { size, fillColor, iconName: _iconName } = toRefs(props)
const iconName = `#${_iconName.value}`
return {
size,
fillColor,
iconName
}
}
}
</script>
그리고 icons 디 렉 터 리 를 새로 만 들 고 index 파일 을 새로 만 들 며 구성 요소 에 걸 고 svg 아이콘 을 가 져 옵 니 다.
// index.ts
import SvgIcon from '@/components/SvgIcon.vue'
import { App } from 'vue'
export default (app: App) => {
app.component('svg-icon', SvgIcon)
}
const ctx = require.context('./svg', false, /\.svg$/)
const requestAll = (ctx: __WebpackModuleApi.RequireContext) => ctx.keys().forEach(ctx)
requestAll(ctx)
// main.ts
import { createApp } from 'vue'
import App from './App.vue'
import installSvgIcon from '@/icons/index'
const app = createApp(App)
installSvgIcon(app)
app.mount('#app')
이 서 류 는 두 가지 일 을 했다.우선,우 리 는 icons/svg 디 렉 터 리 에 svg 아이콘 파일 을 저장 해 야 합 니 다iconfont.
그리고 다른 곳 에서 사용 할 수 있 습 니 다.
<template>
<img alt="Vue logo" src="./assets/logo.png">
<svg-icon icon-name="icon-dashboard"></svg-icon>
<HelloWorld msg="Welcome to Your Vue.js + TypeScript App"/>
</template>
구성 요소 svg-icon 을 통 해 직접 도입 한 다음 icon-name 에 전송 하면 됩 니 다.icon-name 의 값 은 icon 이 svg 파일 이름 을 연결 하여 구성 합 니 다.총결산
이러한 사용자 정의 방식 으로 svg 아이콘 을 도입 하 는 것 은 매우 편리 합 니 다.아이콘 을 추가 하려 면 몇 걸음 이면 됩 니 다.
Vue 를 기반 으로 사용자 정의 구성 요 소 를 구현 하 는 방식 으로 아이콘 을 도입 하 는 이 글 은 여기까지 소개 되 었 습 니 다.Vue 사용자 정의 아이콘 구성 요소 에 대한 내용 은 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Fastapi websocket 및 vue 3(Composition API)1부: FastAPI virtualenv 만들기(선택 사항) FastAPI 및 필요한 모든 것을 다음과 같이 설치하십시오. 생성main.py 파일 및 실행 - 브라우저에서 이 링크 열기http://127.0.0.1:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.