@vuejs_ru

Страница 118 из 3900
Alex
03.02.2017
08:09:07
Vuex будет лишним грузом если только кусок где-то на вью впиливаешь

ну опять же) кому-то вебпак не в радость)

когда уже что-то продвинутое начинаешь делать и то и другое может понадобиться

Сашка
03.02.2017
08:09:41
Vue будет лишним грузом, если только кусок где-то на нем впиливаешь :D

Google
Alex
03.02.2017
08:09:59
ну да, можно вместо него лапшички на jq написать

Сашка
03.02.2017
08:10:24
Если кусок - на ванили даже проще

Alex
03.02.2017
08:10:44
тут скорее смысл что постепенно осваиваться и усложнять приложение когда это потребуется. До поры до времени состояние прекрасно можно в объекте хранить каком-то общем

А когда дорастёт, всё это просто заменяется на vuex

Сашка
03.02.2017
08:11:31
Лан, уговорил)

Illya
03.02.2017
08:24:00
Vue будет лишним грузом, если только кусок где-то на нем впиливаешь :D
неправда. Vue изначально разрабатывался в том числе для таких применений

Stanislav
03.02.2017
08:55:08
https://medium.com/@arturkornakov/5-%D0%B8%D0%B4%D0%B5%D0%B9-vue-js-%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B5-%D0%B2%D1%8B-%D0%BF%D0%BE%D0%BB%D1%8E%D0%B1%D0%B8%D1%82%D0%B5-%D0%B4%D0%B0%D0%B6%D0%B5-%D0%B5%D1%81%D0%BB%D0%B8-react-%D0%B2%D0%B0%D1%81-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%81%D1%82%D1%8C%D1%8E-%D1%83%D1%81%D1%82%D1%80%D0%B0%D0%B8%D0%B2%D0%B0%D0%B5%D1%82-33bcbeba2916#.rrajs472q

Михаил
03.02.2017
08:56:08
@xanf_ua а когда будет запись с субботней лекции ? :)

Illya
03.02.2017
08:58:14
Сегодня сшить надо

Работы много

Roman
03.02.2017
09:13:17
да кстати когда выложите записи стримов на ютуб?

Иван
03.02.2017
09:20:08
https://blog.jetbrains.com/webstorm/2017/02/webstorm-2017-1-eap-171-2822/

Google
Иван
03.02.2017
09:33:16
vuex, redux - никогда не понимаю нахер такое ваще может понадобиться, проекты у меня дохрена сложные, и никаких проблем с хранением состояния не испытываю, тем более с моим подходом вообще vuex и редуксы всякие не вяжутся, насколько я понимаю. Иногда думаю, толи я тупой, то-ли наоборот, раз все фапают на эту херню! Может быть есть у вас на примете реальный какой-нибудь пример (не высосаный из пальца счётчик) а реальная ситуация, где бы я прочувствовал всю прелесть этого дела!?

Arthur ?
03.02.2017
09:35:50
как ты реализовываешь общение между смежными(не иеархическими) компонентами?

Семен
03.02.2017
09:36:19
(без костылей)

Arthur ?
03.02.2017
09:38:10
это удобно(vuex) например если у тебя есть настройки пользователя, и ты хочешь чтобы при их изменении динамически менялись компоненты в разных частях SPA

допустим что выбранная юзером опция должна повлиять на >10 компонентов разного уровня вложенности. Передавать новую инфу в каждый из компонентов явно - ну такое себе решение

с радостью послушаю, какие есть архитектурные подходы решения подобного

MVP
03.02.2017
09:51:26
Лучше ты покажи свой код, а мы тебе и скажем, где у тебя криво и куда можно наложить Vuex хорошо.
+++ хотя согласен что с самого_начала впиливать Redux-подобные штуки нет смысла, пусть сначала MVP будет, направление одобрят, потом можно разгрести говнокод и дописать centralised state management

Иван
03.02.2017
09:51:38
код у меня секретный )

у меня нет говнокода )

Illya
03.02.2017
09:52:05
lol

вот хороший пример

из проекта где мы реально работаем

https://goshakkk.name/lazy-auth-redux-saga-flow/

без редакса и саг проклянешь это делать

Иван
03.02.2017
09:54:11
Хорошо, сейчас обдумаю, почитаю

Illya
03.02.2017
09:54:23
или вот простой сценарий

есть таблица игроков, которая содержит очки

Таблица может обновляться рестом (глобально) и по вебсокетам (инкрементально)

Google
Illya
03.02.2017
09:54:55
Таблица нужна в нескольких местах приложения

Ее удобно хранить в application state

более того - ты сможешь отслеживать ее обновления (иначе как ты узнаешь что таблица обновилась)

Andrey
03.02.2017
09:58:04
Был один товарищ очень против vuex, потому что прочел про flux и решил что он нужен только Фейсбуку. Но релаксации и cuex совсем не одно и тоже. В Vuex нет столько боелепартного кода и проблем, как в редакс. Когда товарищ попробовал Vuex - он осознал что был не прав. Ведь инстумент нужно самому попробовать что бы решить как он

Illya
03.02.2017
09:58:27
такое. vuex / redux отличаются только "оберточным" кодом

Иван
03.02.2017
10:01:46
А почему бы не так: // table.js: export default [ {player: 1, points: 12}, {player: 2, points: 15} ] // component1.vue <script>: import table from './table' export default: { name: 'component1', data() { return {table} } } // component2.vue <script>: import table from './table' export default: { name: 'component2', data() { return {table} } , methods: { addPoints(player, count) { table.find(item => item.player === player).points += count // Ну для простоты так написал } } }

Illya
03.02.2017
10:03:58
Вопрос: где вебсокеты (подсказка - они не могут быть в компонентах, т.к. компонент это вью слой). Второй вопрос - как отслеживать изменения в таблице (в вашем случае изменения в table.js не будут вызывать перерисовки - т.к. table.js очевидно не реактивна)

Иван
03.02.2017
10:04:39
очевидно, что тейбл реактивна, потому, что как только она поподёт в дату одного из компонентов она станет реактивной

Illya
03.02.2017
10:04:49
А еще возникают нюансы правильной реализации: к примеру в реальном приложении вначале ты подключаешься к вебсокету и буферизируешь обновления, потом грузишь рест, и при успешной загрузке реста накатываешь обновления (это единственный способ НЕ ТЕРЯТЬ данные)

нет не станет :)

вернее будут неприятные нюансы, связанные с тем. что к примеру добавлять новых игроков вам прийдется только через Vue.$set

Иван
03.02.2017
10:05:30
ща будем фиддлить

Иван
03.02.2017
10:05:41
Vue.$set не использую почти никогда

и не надо будет, просто пушишь в тейбл, тейбл реактивный

Illya
03.02.2017
10:07:12
это пуш пропатченный :) а не тейбл реактивный. ну да ладно

а вот где разместить к примеру логику с вебсокетами и трекингом загрузки. которую я описал? :)

А еще как вы будете отлаживать кто инициировал изменение в таблице? :)

D
03.02.2017
10:15:27
здра! никто, просто быть вкурсе процессов разработки

Emil
03.02.2017
10:16:35
вечер в хату, разрабы

Иван
03.02.2017
10:22:02
Всё реактивно: https://jsfiddle.net/n23cLtrd/

Google
Иван
03.02.2017
10:22:47
а вот где разместить к примеру логику с вебсокетами и трекингом загрузки. которую я описал? :)
Я таблицу сделаю классом с собственными методами, логированием и любым делом, что мне нужно (и если нужно)

Illya
03.02.2017
10:23:12
ага, а вот теперь возникает вопрос "начерта". Ну т.е. вы изобретаете велосипед, который надо изучать вам и ваших коллегам

Vuex предлагает СТАНДАРТИЗИРОВАННОЕ решение для таких задач

Admin
ERROR: S client not available

Иван
03.02.2017
10:23:35
что тут изучать то? ))) vuex - вот что придётся изучать

Illya
03.02.2017
10:23:38
естественно можно закодить все самому. но это будет боль

Timur
03.02.2017
10:23:49
что тут изучать то? ))) vuex - вот что придётся изучать
А что там изучать? Я его изучил за полдня.

Иван
03.02.2017
10:23:50
а что массив объектов javascript изучать?

Timur
03.02.2017
10:23:53
Он прост как топор.

Иван
03.02.2017
10:24:03
А когда она станет классом (возможно с наследованием и т.п.) (аля сервисом) тогда она уже не будет plain объектом, которыми оперируют

Illya
03.02.2017
10:24:07
простейший пример: надо запретить модифицировать таблицу напрямую - только каким-то методом :)

Иван
03.02.2017
10:24:08
vuex и redux

я ответил, смотри выше

Illya
03.02.2017
10:24:49
вы ж понимаете - если вы превратите ее в класс, у которой будет допустим метод возвращающий текущее состояние таблицы - отвалится реактивность

Иван
03.02.2017
10:24:52
да, но вот если переписать всё на vuex, то получится в пятсот раз больше кода, и спрашивается нахера?

Illya
03.02.2017
10:25:12
потому что если вы возвращаете новый инстанс таблицы - то она будет не реактивна

а если возвращаете тот же - я могу его модифицировать напрямую

Illya
03.02.2017
10:25:30
см. выше

Иван
03.02.2017
10:25:32
зачем новый инстанс

Google
Illya
03.02.2017
10:25:47
потому что если вы возвращаете тот же инстанс кто мне запретит сделать table[0].score = 80

и я потом фиг найду кто это сделал :)

Иван
03.02.2017
10:26:02
совесть?

=D

Illya
03.02.2017
10:26:27
Вот именно. Вот только такие понятия как совесть плохо применимы в хоть сколько-нибудь больших проектах (даже на 2-3 разработчиков)

Иван
03.02.2017
10:26:39
ну может быть проблема как раз в отсутсвии коллег

Illya
03.02.2017
10:26:43
Там задача сделать максимально изолированный код, чтобы было безопасно

А теперь добавим наворотов: мне нужно каждый раз когда происходит изменение очков отправлять бикон в гуглоаналитику (сторонний сервис)

Вы будете делать это прям в классе таблицы? Это прямое нарушение S из SOLID - принципа одной ответственности. Класс занимается двумя вещами (управляет данными и шлет данные в гуглоаналитику)

Плюс в таком случае у класса появляется внешняя зависимость и его уже дико геморройно тестировать

Andrey
03.02.2017
10:30:28
Да есть же 2 пути со стором из доков ву. Это vuex и инстанс vue. Иван окольными путями использует второй вариант.

Illya
03.02.2017
10:30:43
я все это понимаю

собираюсь сейчас постримить если настроение будет redux-saga + vuex )

Andrey
03.02.2017
10:31:49
А нет других бибилиотек, кроме саги, что бы пользоваться конкаренси?

Страница 118 из 3900