При чем здесь сервер?
Вы передаете ID как параметр маршрута и он будет доступен в this.$route.params.
Делается это затем чтобы передать компоненту по маршруту только ID а все остальное догрузить с реста в каком нибудь created хуке, только и всего.
Все очень интересно. Смею предположить что вы в переменной this.date храните объект, тем самым вы возвращаете ссылку! На объект this.date видимо.
Попробуйте написать как нибудь типа let date = this.date ? JSON.parse(JSON.stringify(this.date)) : ...
Если сработает как ожидалось - то у вас ошибка в архитектуре и нужно подумать над ней.
Также computed свойства кешируются, не забывайте об этом.
Я бы вам советовал подучить хуки и что происходит в вашем случае. Вы инициализирует скролл в руке created, однако на этом хуке компонен ещё не находится в дом дереве поэтому вы ловите ошибку. Вам нужно использовать этот же код в хуке mounted.
Если вам нужно хранить это прям все время то - vuex.
На вашем месте я сделал бы иначе. К каждому компоненту в виде пропсов отдавал его объект типа
Data(){
return {
items: [
{id: 123,
price:123
}]
}
}
Внутри этого объекта уже как хотите играйтесь данными. Они принадлежат родителю и в случае дестроя ребенка - не пропадут.
Смотрите в модификатор v-model.sync к примеру. Или же можно так. внутри компонента props: {suggestion : {default: ()=> {}}}. И при обновлении suggestion в компоненте this.$emit(suggestion)