Вы задаете 2 или 3 вопроса одновременно, поэтому я постараюсь ответить на них по частям.
Угловые наблюдаемые в Vue
Непосредственной заменой угловых наблюдаемых является система событий Vue. Вы можете прослушивать события с помощью this.$on
и прекратить прослушивание с помощью this.$off
. Чтобы сделать это приложение широко, вам нужно сделать что-то вроде шины событий:
Vue.prototype.$bus = new Vue();
// in components
mounted () {
this.$bus.$on('myMessage', this.handleMyMessage);
},
beforeDestroy () {
this.$bus.$off('myMessage', this.handleMyMessage);
}
Тем не менее, это не похоже на то, что вы действительно хотите использовать.
Обновление данных
Я подозреваю, что вы хотите использовать метод retry()
, чтобы повторять запрос снова и снова, но, честно говоря, нет причин использовать это. Вы можете просто поместить запрос в метод и вызвать его в течение интервала.
Лучшим способом обновления ваших данных может быть использование сервера веб-сокетов, но это то, что вам нужно настроить. Без этого вам придется либо выполнять запросы API повторно, либо не пытаться обновить его, пока пользователь не захочет.
Обновление шаблона
Данные в Vue всегда реактивны. Если данные, на которые есть ссылки в шаблоне, изменяются, шаблон автоматически перерисовывается. Если вы меняете объект, вам может потребоваться использовать вспомогательные методы Vue.set
или Vue.delete
( docs ). Это обеспечит реактивность данных и, таким образом, обновит представленный шаблон.