Добрый...
Наткнулся тут на штуку, которую не понимаю, как обойти. (Я даже не чайник в веб-программировании, а так... Кипятильник)
Есть простой vue-компонент (схема упрощена до предела):
<template>
<div>{{dPagedata}}</div>
</template>
<script lang='ts'>
import { Component, Vue, Prop } from 'vue-property-decorator';
@Component
export default class Page extends Vue {
@Prop() public Pageid: string;
private Pagedata: string;
private data() {
return {
dPagedata: this.Pagedata,
}
}
private created() {
DataModule.GetDataAsync(this.Pageid)
.then((val) => {
this.$data.dPagedata = val;
});
}
Параметр Pageid устанавливается родителем, идёт получение данных и всё более-менее нормально рисуется при переходе, например, с / на /Page?Pageid=1.
Но потом, когда мы переходим c/Page?Pageid=1 на /Page?Pageid=2 (например, по прямой ссылке) — created, разумеется, не срабатывает. А срабатывает updated() вида, аналогичного create.
И вот тут загвоздка. Поскольку меняются реактивно связанные данные — тут же возникает опять updated() и мы зацикливаемся.
Понимаю, что я что-то делаю не так, но что не так — я не понимаю...
Подскажите, куда копать?