let workToView = _.find(this.works, {id:id})
this.$emit("viewDetails",workToView);
}
который нужен при передачи выбранного обьекта.
При отображении детальной странички мне нужно его получить
import WorkService from "../../mixins/WorkService";
export default {
mixins: [WorkService],
data(){
return{
work:{}
}
},
created() {
WorkService.$on('viewDetails',(selectedWork) =>{
this.work = selectedWork
})
}
}
Сейчас уже стоит vue3 и встроенный метод $on уже не срабатывает. Как теперь писать?
Документация говорит о том, чтобы заменять on на глобальный eventbus. Но это плохая идея
Ну и как же тогда лучше теперь мне вытащить объект?
Вынести это дело в какой-нибудь composable, наверное Ну или вкрячить какой-нибудь mitt в качестве глобального eventbus
Зависит от задачи по коду трудно сказать что ты делаешь
я пока просто учусь. Мне бы хотелось бы просто вытащить объект из миксина
Тут зависит от задачи. Можно пойти разными путями 1 эвент бас 2 стор 3 сервис
Не знаю тогда как объяснить. Есть главный app.js window.Vue = require('vue').default; Дальше как понимаю в нем нужно назначить const eventBus = new window.Vue export default eventBus Затем в мексине у меня описан метод viewDetails(id){ let workToView = _.find(this.works, {id:id}) this.$emit("viewDetails",workToView); } И чтоб увидеть детали объекта я делаю import WorkService from "../../mixins/WorkService"; export default { mixins: [WorkService], data(){ return{ work:{} } }, created() { eventBus.$on("viewDetails",(selectedWork) =>{ this.work = selectedWork }) console.log(this.work); } }
Обсуждают сегодня