Я пытаюсь найти способ использовать vuex с повторно используемым компонентом, который хранит данные в хранилище. Дело в том, что мне нужно, чтобы хранилище было уникальным для каждого экземпляра компонента.
Я думал, что многоразовый модуль документа был ключом, но в конце концов он, кажется, не для этой цели, или я не понял, как его использовать.
Родительский компонент:(проп «req-path» используется для передачи разных URL-адресов, чтобы каждый компонент FileExplorer совершал действие по извлечению данных из API с этим URL-путем)
<template>
<div class="container">
<FileExplorer req-path="/folder/subfolder"></FileExplorer>
<FileExplorer req-path="/anotherfolder"></FileExplorer>
</div>
</template>
<script>
import { mapState, mapGetters } from "vuex";
import FileExplorer from "@/components/FileExplorer.vue";
export default {
components: {
FileExplorer
}
};
</script>
Повторно используемый компонент:
<template>
<div class="container">
<ul v-for="(item, index) in folderIndex" :key="index">
<li>Results: {{ item.name }}</li>
</ul>
</div>
</div>
</template>
<script>
import { mapState, mapGetters } from "vuex";
export default {
props: ["reqPath"],
},
computed: {
...mapState("fileExplorer", ["folderIndex"])
},
created() {
// FETCH DATA FROM API
this.$store
.dispatch("fileExplorer/indexingData", {
reqPath: this.reqPath
})
.catch(error => {
console.log("An error occurred:", error);
this.errors = error.response.data.data;
});
}
};
</script>
store.js, где я вызываю свой модуль хранилища, который я разделяю в разных файлах, здесь нас интересует только модуль fileExplorer. РЕДАКТИРОВАТЬ: Я упростил файл для ясности цели, но у меня есть некоторые другие состояния и много мутаций внутри. компонент для отображения разных данных из этих двух разных URL, вместо этого я получаю одни и те же данные в экземпляре двух компонентов (что не удивительно).
Большое спасибо всем, кто все это читает!