Utilizando o SVG como um componente no Vue e Vite
Para carregar um arquivo SVG como um componente em um projeto Vue com Vite, você pode seguir os seguintes passos:
Instale o vite-svg-loader
O primeiro passo é instalar instalar a biblioteca vite-svg-loader.
Dentro da sua pasta de trabalho, execute o seguinte comando:
yarn add -D vite-svg-loader
Ou, se você tiver utilizando o npm
, assim:
npm install vite-svg-loader -D
Configurando o vite-svg-loader
Nesta etapa, precisamos configurar o vite-svg-loader
no script de configuração vite.config.js
, com a seguinte declaração:
import svgLoader from 'vite-svg-loader'
export default defineConfig({
plugins: [
svgLoader({ defaultImport: 'url' }),
// ... restante do código
]
})
Importando o .svg como component
Agora, você pode carregar os arquivos .svg como se fosse component. Para isso, basta importar o .svg
adicionando ao final a declaração ?component
.
Exemplo:
<template>
<div>
Exibir o component:
<CardComponent width="100" />
</div>
</template>
<script setup>
import CardComponent from "./svg/car.svg?component"
</script>
Resultado:
Observação
Observe que, no script de configuração do Vite, adicionamos a propriedade defaultImport
com o valor 'url'
. Configurando seu projeto dessa forma, podemos evitar conflitos em carregamentos do SVG, caso seu projeto já esteja em avançado desenvolvimento ou esteja carregando alguns arquivos SVGs
considerando importações anteriores.