Я использую Vue.js, и одним из моих компонентов является редактор 2D-холста (с использованием библиотеки fabric.js).
Дело в том, что код для этого редактора и для операций, которыми я являюсьв нем становится довольно многословно быть частью тега скрипта компонента.
Я пытался использовать миксины и разделил код на отдельные миксины, такие как canvasMoving
, copyPaste
, grouping
.
Теперь, когда это работает, я чувствую, что это еще не тот путь, который, возможно, мне следует использовать специализированные классы.Также я верю, что миксин - это когда у вас есть функциональность, которую можно разделить между несколькими компонентами.
Так как, например, для copyPaste
mixin иногда нужны методы, которые содержатся в mixin grouping
.Тогда мне кажется, что это неправильно, так как компонент включает оба этих миксина, он работает нормально, но если я удалю один из них, он перестанет работать.
Более того, все эти миксины работают схолст, но холст инициализируется только в одном из них, и снова они могут получить к нему доступ, потому что компонент включает все миксины, но если я удаляю миксин, который инициализирует холст, все они перестают работать, потому что this.canvas
будетundefined.
Какой правильный подход здесь?Я думал о классах с внедрением зависимостей, например, если мастер-класс скажет Editor
, и у него будут свои зависимости (группировка, copyPaste, рисование) или что-то в этом роде.
Тогда единственное, чего я не знаюэто как соединить мои отдельные классы с компонентом Vue.js.Поместить мастер класс в data
объект моего компонента?