Vuex:添加到原型以便我可以做类似 object.save() 的事情?

Vuex: add to prototype so I can do something like object.save()?

我所有的 Vuex 模块都使用基础 UPSERTUPDATEDELETE 函数,所以我不想在我的组件中输入 this.$store.dispatch('UPSERT', object) 而是输入 [=16] =].我认为这很容易,但不确定这样做是否有任何问题或如何做到这一点。

    export interface ITaskMessage {
      id?: string
      message: string | null
      save(): any
    }
    
    export class TaskMessage implements ITaskMessage {
      id?: string
      message: string | null = ''
      save() {
        window._actions['UPSERT']
      }
    }

此代码来自模块中的 types.ts。我假设我需要在此文件中导入一些内容,然后在 class 声明中使用它。我只是不确定它应该是什么。

它比我想象的要简单。基本上,将商店导入文件:

import store from '@/store'

然后,填写保存方法:

  public save() {
    store.dispatch('UPSERT', this)
  }