Для компактной вставки SVG с возможностью изменения его свойств в Vue.js можно воспользоваться следующим подходом:
- Использование компонента
<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>
- Добавление свойств в SVG файл: Чтобы иметь возможность изменять свойства SVG (например, цвет), добавьте соответствующие атрибуты в самом SVG файле:
<svg width="24" height="24" fill="currentColor"> <!-- ваше содержимое SVG --> </svg>
- Использование компонента в шаблоне:
<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.