miyuesc / bpmn-process-designer

bpmn-js 工具库
https://juejin.cn/post/7304831120710434868
Apache License 2.0
1.64k stars 464 forks source link

MyPropertiesPanel中使用了window作为全局bpmnInstances的管理欠佳 #40

Closed xiaonanfeng closed 2 years ago

xiaonanfeng commented 2 years ago

window.bpmnInstances = { modeler: this.bpmnModeler, modeling: this.bpmnModeler.get("modeling"), moddle: this.bpmnModeler.get("moddle"), eventBus: this.bpmnModeler.get("eventBus"), bpmnFactory: this.bpmnModeler.get("bpmnFactory"), elementFactory: this.bpmnModeler.get("elementFactory"), elementRegistry: this.bpmnModeler.get("elementRegistry"), replace: this.bpmnModeler.get("replace"), selection: this.bpmnModeler.get("selection") }; —————————————————————————————————————————————————— 以上代码是否可用vuex解决,不影响全局状态的话,加上namespace

miyuesc commented 2 years ago

window.bpmnInstances = { modeler: this.bpmnModeler, modeling: this.bpmnModeler.get("modeling"), moddle: this.bpmnModeler.get("moddle"), eventBus: this.bpmnModeler.get("eventBus"), bpmnFactory: this.bpmnModeler.get("bpmnFactory"), elementFactory: this.bpmnModeler.get("elementFactory"), elementRegistry: this.bpmnModeler.get("elementRegistry"), replace: this.bpmnModeler.get("replace"), selection: this.bpmnModeler.get("selection") }; —————————————————————————————————————————————————— 以上代码是否可用vuex解决,不影响全局状态的话,加上namespace

可以,但是不建议。vuex 会对 state 进行响应式处理,添加相关属性。部分属性会影响 bpmn.js 内部实例的一些方法的正常调用和属性更新。