在VueJS中,我应该在哪里存储FabricJS实例?我试图将其存储在Vuex状态下,但Fabric实例有很多内部方法来更新实例并触发";不要在Vuex突变之外突变状态";错误
我看到您正在使用Vue2,为了帮助Vue3用户,我也会介绍一下。
我想以一种不会注入反应性的方式存储Fabric.js画布。否则性能可能会很糟糕。
要将其存储在Vuex或组件数据中,可以使用Object.freeze()
,在Vue3中有shallowRef
。这里对两者都做了一些描述。
另一种选择是研究VueUse中的一些状态函数,它支持Nuxt2/Vue2和Nuxt3/Vue3。
虽然在.vue文件之外不那么友好,但Vue2或Vue3组件中的provide
和inject
对于共享对象可能很有用。
存储在window
中既简单又方便,但全局变量往往会在以后再次困扰我。我会使用上面选项中的一些内容来保持画布的范围。