У меня есть концептуальный вопрос о том, как удалять сущности из 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. Как они стали разрушенными.