Иван
Чо уж, памяти-то точно не жалко, десять мегабайт на весь стор
Anonymous
Почему ты в нетворке не можешь неудачные запросы отследить
Иван
@wentixon да каждый день почти я сижу и смотрю где там почему как что происходит
Stanislav
Мне одному кажется это забавным - писать столько кода, чтобы отправить лайк на сервер?
Armen
Мне тож)
Иван
Потому что пример с сетью это только вершина айсберга
Иван
@c01nd01r сколько?
Иван
+3 строчки примерно
Anonymous
Просто отправить запрос и поменять стейт?
Иван
Вот в редаксе - там да, там пиздос
Anonymous
Тогда получится заметная задержка
Stanislav
+3 строчки примерно
3 строчки? Модуль, экшен, мутации, mapState, mapActions
Иван
Там столько бойлерплейта, что прям ну ваще
Stanislav
Ну а что ты предлагаешь
Я написал чуть выше. Умный компонент, + менеджмент ошибок в транспортном слое
Иван
Ну, предположим, mapState тебе тут не особо может и нужен
Stanislav
Ну, предположим, mapState тебе тут не особо может и нужен
А как ты количество лайков получишь?
Иван
А во-вторых, предположим, что лайкнуть ты можешь из двух разных мест
Armen
Ну оно там по идее автоматически реактивно обновится
Иван
$store ручками залезу, если оч надо
Anonymous
Я написал чуть выше. Умный компонент, + менеджмент ошибок в транспортном слое
Я особо разницы не вижу, но если есть vuex думаю вся бизнес логика должна быть в нем
Иван
А во-вторых, предположим, что лайкнуть ты можешь из двух разных мест
В таком случае ты что будешь делать? Выносить ведь всю логику, верно?
Stanislav
Я особо разницы не вижу, но если есть vuex думаю вся бизнес логика должна быть в нем
Вся логика в компонентах должна быть, что б ты юзать мог вообще везде, а не в каком то стейт менеджменте
Иван
Да ну прям
Иван
Часто ты эти компоненты переиспользуешь?
Иван
Компонент кнопки - наверно
Иван
Ну так он и будет тупой до невозможности
Иван
А компонент новости ты хрен куда ещё в другой проект запихаешь
Иван
Все равно придется напильником дорабатывать
Stanislav
Часто ты эти компоненты переиспользуешь?
У меня платежная форма отделилась в отдельное приложение) И как же я счастлив, что vuex там не было
Иван
Отлично, один компонент нашли
Иван
Ещё примеры?
Armen
Хватит ссориться. лучше давайте обсудим, как бы кто сделал такую фигню: Есть такие глобальные модальные окна, которые должны открываться при смене хеша в адресной строке, как бы вы это сделали?
Stanislav
Примеры использования одних и тех же компонентов в разных местах? Ты серьезно?
Иван
В разных проектах. Потому что внутри одного проекта в разных местах - это понятно, тут вьюкс вообще вне конкуренции)
Artem
Ещё примеры?
Оо привет. Помню твой доклад. Про ужасный js и ламповый python
Armen
Типа если хеш поменялся на #profile - открывается профиль, #balance - открывается баланс
Armen
Не, я уже решил эту задачу, мне интересно может кто как-то по другому предложит
Иван
Я б через вьюкс решил)
Armen
Лоль, да у вас, батенька, вьюксомания
Иван
Типа вместо перехода по ссылке на #profile у нас commit('set_modal', 'profile')
Armen
Окей, а чё делать если я открыл страницу, где уже есть #profile?
Иван
Ну это должно разруливаться роутером в обработке нового урла
Иван
Это не вьюксомания
Иван
Просто у нас сейчас ровно так все и организовано, ток через редакс. Правда, без урлов все же
Иван
Ничем, он хуже
Иван
Он ещё и для реакта в основном
Иван
Хотя и ко вью можно прикрутить, если совсем того)
Armen
А во-вторых, предположим, что лайкнуть ты можешь из двух разных мест
Я тут подумал, вот всё-таки допустим из 2 разных мест, т.е. разных компонентов, берёшь дёргаешь апи и обновляешь текущий компонент в зависимости от результата, а если это будет в vuex то что, писать разные экшены для лайка отсюда и лайка оттуда?
Иван
@ArStah наоборот
Иван
В случае вьюкса ты вызываешь ровно тот же экшон
Иван
Понятно что тем же миксином можно сделать подобное
Armen
Ненене я о другом
Иван
Только вот тогда кода будет ровно столько же, как и в случае вьюкса
Armen
Вот пример: есть список постов, когда нажимаешь на одном лайк - дёргаешь вьюэкс, шлётся запрос, обновляется объект с данными этого поста в массиве постов в vuex. Теперь у тебя есть открытый пост, т.е. только один на страницу, или в модалке, тут тоже есть лайк, ты лайкаешь, дёргается вьюэкс, шлётся запрос ииии ?
Иван
Хе
Иван
Тут небольшая тонкость есть
Stanislav
Я в упор не понимаю, зачем в компоненте, который делает ровно одну вещь - оправляет запрос по клику, юзать vuex?
Иван
В стейте хранить объекты лучше не в массиве, а в объекте, по ключу-айди
Stanislav
Патамушта этот запрос понадобится потом в другом месте
Ну так в другом месте будет использоваться тот же самый компонент, который отправлет тот же самый запрос
Иван
Ну вот нет
Armen
В стейте хранить объекты лучше не в массиве, а в объекте, по ключу-айди
Та пуфик, я в принципе и это имел ввиду, как ещё в массиве найти этот пост? не перебирать же весь массив)
Иван
Надо тебе лайнкуть новость в другом месте, из другого компонента, что делать?
Иван
Та пуфик, я в принципе и это имел ввиду, как ещё в массиве найти этот пост? не перебирать же весь массив)
В редаксе это решается так, что ты хранишь не массив, а типа как в мини бд
Иван
@c01nd01r что за компонент лайков?
Иван
Миксин?
Иван
Или hoc?
Иван
Или типа который выводит сердечко?
Иван
А если у тебя есть кнопка "Анлайкнуть все посты этого гомика"?
Stanislav
@c01nd01r что за компонент лайков?
Нет, просто отдельный компонент, который обрабатывает события клика, отправляет запрос, принимает пропсы. Реализация не суть важна
Armen
Кстати тож годная идея, может быть компонент лайка, который делает совсем чуть-чуть, показывает, лайкнуто-нелайкнуто, при нажатии дёргает апи и передаёт тип и ид ресурса, который хотят лайкнуть
Stanislav
именно