То, что мне нравится в базах данных реального времени, таких как Firebase, - это их функции push. например, vuefire делает невероятно простым обладание самообновляющимися объектами без навязывания сотен прослушивателей сокетов и обратных вызовов.
Это пример:
data(){
return {
books: []
}
},
created(){
axios.get('/books', (books) => {
this.books = books
})
}
Чтобы добавить db-реактивность к этому, мне нужно как минимум 3 события "созданная книга", "обновленная книга", "снятая книга".
Pusher.on('book-created', (book) {
this.books.push(book)
})
Pusher.on('book-updated', (book) {
let b = _.find(this.books, {id: book.id})
if(b){
_.extend(b, book)
}
})
etc..
Он становится довольно волосатым, когда у вас много моделей и много просмотров, у некоторых видов есть другой набор книг, поэтому я не могу иметь только одну стандартную переменную vuex. Есть ли разумный/быстрый способ приблизиться к этому?
Я могу, конечно, абстрагировать отправку события на моем бэкэнд, чтобы все мои модели автоматически активировали события. но интерфейс не смущен.