在VueJS中,FabricJS实例存储在哪里?窗Vuex?组件数据



在VueJS中,我应该在哪里存储FabricJS实例?我试图将其存储在Vuex状态下,但Fabric实例有很多内部方法来更新实例并触发";不要在Vuex突变之外突变状态";错误

我看到您正在使用Vue2,为了帮助Vue3用户,我也会介绍一下。

我想以一种不会注入反应性的方式存储Fabric.js画布。否则性能可能会很糟糕。

要将其存储在Vuex或组件数据中,可以使用Object.freeze(),在Vue3中有shallowRef。这里对两者都做了一些描述。

另一种选择是研究VueUse中的一些状态函数,它支持Nuxt2/Vue2和Nuxt3/Vue3。

虽然在.vue文件之外不那么友好,但Vue2或Vue3组件中的provideinject对于共享对象可能很有用。

存储在window中既简单又方便,但全局变量往往会在以后再次困扰我。我会使用上面选项中的一些内容来保持画布的范围。

最新更新