我有一个Vue 3单文件组件,其中包含一个canvas元素。我使用的是fabric
npm包。如果我使用
data: function () {
return {
canvas: null,
}
},
mounted: function () {
const canvasElement = vm.$refs['canvas']
const canvas = new fabric.Canvas(canvasElement)
}
画布工作正常,我能够调整组件的大小,编辑文本对象等。
但当我加上这一行时:
this.canvas = canvas
那么画布上的所有对象都将失去其可编辑和可调整大小的特性。(双击文本不起作用,使用光标时边角不允许调整大小)。其他人有过这种经历吗?有已知的解决方案吗?
1条答案
按热度按时间cwdobuhd1#
经过一些尝试和错误,下面是我如何让Vue3与Fabric.js画布一起工作的。
1.在组件的
setup
脚本中,创建一个名为canvas
的变量,并为其分配一个值null
。1.在
mounted()
生命周期钩子中设置画布。1.现在,当您需要与画布交互时,可以在
method
函数中使用this.canvas
。为什么采取这种方法?
根据我的观察,如果我创建了一个data属性来保存我的canvas元素,那么我添加到canvas的元素是不可编辑的:
似乎不起作用: