На странице компонента подтягиваются проекты с сервера api, но при возврате на страницу компонента после перехода на другой роут коллекция с проектами сбрасывается и загружается по новой. Как это исправить?
Секция script:
export default {
name: "Projects",
components: {SearchBar, AddProjectModal, ProjectCard, PageWrapper, Header, Sidebar},
data() {
return {
searchResults: ref([]),
hideCloseBtn: true,
}
},
setup() {
return {
projects: ref(findProjects({load: 'photos'}))
}
},
methods: {
async load() {
await this.projects.load()
}
}
}
class ProjectCollection {
*[Symbol.iterator]() {
for (let element of this._elements) {
yield element
}
}
constructor(url) {
this._elements = []
this._nextUrl = url
this._count = 0
}
add(element) {
this._elements.push(element)
}
addMany(elements) {
this._elements.push(...elements)
}
_map(data){
if (data !== []) {
this._nextUrl = data.next
this._totalResults = data.count
this.addMany(data.results)
}
}
get length() {
return this._elements.length
}
isEmpty() {
return this._elements.length === 0
}
get count() {
return this._count
}
hasMore() {
return this._nextUrl !== null
}
async load() {
if (this.hasMore()) {
this._map((await axios.get(this._nextUrl)).data)
}
}
}
function findProjects(query = {}) {
return new ProjectCollection(_url('project', query).toString())
}