【发布时间】:2018-11-21 12:05:08
【问题描述】:
我正在使用 Vue.js,我的组件之一是 2D 画布编辑器(通过使用 fabric.js 库)。
问题是,这个编辑器的代码和我在其中进行的操作变得非常冗长,成为组件脚本标签的一部分。
我尝试使用 mixins 并将代码分成单独的 mixins,例如 canvasMoving、copyPaste、grouping。
虽然这可行,但我觉得这仍然不是要走的路,也许我应该使用专门的课程。我也相信 mixin 是当你有一个功能可以在多个组件之间共享时。
因为例如 copyPaste mixin,有时需要包含在 mixin grouping 中的方法。这对我来说真的很不对劲,因为组件包含这两个 mixin,它可以正常工作,但如果我删除其中一个,它将停止工作。
所有这些 mixin 都适用于画布,但画布仅在其中一个中初始化,并且他们可以再次访问它,因为组件包含所有 mixin,但如果我删除初始化画布的 mixin ,它们都停止工作,因为this.canvas 将是未定义的。
这里的正确方法是什么?我正在考虑使用依赖注入的类,比如拥有主类让我们说Editor,它会有它的依赖项(分组、复制粘贴、绘图)或类似的东西。
那么我唯一不知道的是如何将我的单独类与 Vue.js 组件连接起来。把大师班放在我组件的data对象中?
【问题讨论】:
标签: javascript vue.js dependency-injection es6-class