Для компактной вставки SVG с возможностью изменения его свойств в Vue.js можно воспользоваться следующим подходом:
1. **Использование компонента <component>
**: Вы можете создать компонент, который будет динамически загружать SVG и применять к нему свойства. Например, создайте компонент SvgIcon
:
<template> <component :is="icon" :fill="fill" :width="width" :height="height" /> </template> <script> export default { props: { icon: { type: String, required: true }, fill: { type: String, default: 'currentColor' }, width: { type: [Number, String], default: 24 }, height: { type: [Number, String], default: 24 } } }; </script>
2. **Добавление свойств в SVG файл**: Чтобы иметь возможность изменять свойства SVG (например, цвет), добавьте соответствующие атрибуты в самом SVG файле:
<svg width="24" height="24" fill="currentColor"> <!-- ваше содержимое SVG --> </svg>
3. **Использование компонента в шаблоне**:
<template> <SvgIcon icon="path_to_your_svg_file.svg" fill="red" width="32" height="32" /> </template> <script> import SvgIcon from '@/components/SvgIcon.vue'; export default { components: { SvgIcon } }; </script>
Теперь, при использовании компонента SvgIcon
, вы сможете динамически изменять такие свойства, как цвет, ширина и высота SVG. Этот подход позволяет вам компактно вставлять SVG с возможностью изменения его свойств в Vue.js.