Как правильно удалить объекты из vuex, связанные с компонентами vue - PullRequest
0 голосов
/ 02 октября 2019

У меня есть концептуальный вопрос о том, как удалять сущности из vuex, когда у вас есть компоненты, созданные маршрутизатором с параметрами, которые являются индексами для списков vuex. Позволяет хранить в хранилище некоторые данные, такие как:

export interface CONFIG {  a: string; b: string; }
export interface DATA { someData1: any; someData2: any; }

@Module
class AppState extends VuexModule {

 // usual 'plain' data lists
  peerConfigs: CONFIG[] = [];
  peerData: DATA[] = [];
}

Позволяет иметь маршруты типа 'edit/:peerId(\d+)' => { component: PeerForm } и иметь компоненты vue в <keep-alive><router-view /></keep-alive>:

@Component
class PeerForm extends Vue {
 @Prop({ required: true } peerId!: number;
 //...
}

Такие, мы могли бы иметь "равноправные представления"для любого посещенного маршрута для пиров в нашем магазине. Но что, если мы хотим реализовать кнопку delete для каждого пира. Очевидно, у нас было бы в запасе:

 @Action({ commit: 'DELETE_PEER' })
 deletePeer( idx: number ) { return idx; }

 @Mutation
 DELETE_PEER(idx: number) { this.peerConfigs.splice(idx, 1); this.peerData.splice(idx, 1); }

Таким образом, вопрос в том, как обращаться со всеми компонентами в keep-alive, которые удалили idx, и наиболее важными с peerId> (больше чем) idx. Как они стали разрушенными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...