@react_js

Страница 1489 из 5115
Dmitry
17.06.2017
20:11:45
да где угодно на самом деле
“Логика где угодно” - звучит хорошо

(нет)

Dreamerinnoise
17.06.2017
20:12:32
Логика в сторе

Dmitry
17.06.2017
20:13:25
А как там что-то типа мидлвары сделать ?

Google
blkmrkt
17.06.2017
20:13:37
“Логика где угодно” - звучит хорошо
Ну например хочешь ты в ф-ии рендера express заинжектить что-нибудь с сервера, не обязательно писать общий метод для этого - берешь инициализируешь стейт, мутируешь его и высушиваешь

там батчинг бесплатный
Угу стараюсь так делать

Dmitry
17.06.2017
20:26:07
ну как-то выглядит не очень удобно

если мне надо выполнить цепочку екшонов на какой-то кнопке

и эту же цепочку екшонов

где-то еще

и для этой цепочки надо несколько сторов, то эти сторы инжектить в каждый компонент

blkmrkt
17.06.2017
20:26:57
Вот я лишь не вдуплил, на какой магии работает MobX. С Редуксом все понятно, это object.assign. А тут что? Простые объекты превращаются в объекты с геттерами-сеттерами, которые видимо и хукаются самим мобксом?

Dreamerinnoise
17.06.2017
20:27:28
он структуры заменяет на свои

и строит граф зависимостей

Dmitry
17.06.2017
20:27:56
как во вью жс

оборачивает сеттеры и геттеры

Google
blkmrkt
17.06.2017
20:28:32
и для этой цепочки надо несколько сторов, то эти сторы инжектить в каждый компонент
в ф-ю просто оборачиваешь. Сторов в мобксе как в редуксе нет, там все всегда реактивное

Dreamerinnoise
17.06.2017
20:29:23
Где то был у Вестрйета видос

где он объясняет как оно работает

ща поищу

blkmrkt
17.06.2017
20:29:54
Прошло уже несколько лет, странно почему больше народу не пользуются мобксом

Помню какой хайп был после конференции где редукс показали и какой он простой, и сразу же мобкс появился

Dreamerinnoise
17.06.2017
20:32:28
Он появился раньше афаик

blkmrkt
17.06.2017
20:33:40
https://www.youtube.com/watch?v=TfxfRkNCnmk
зал прям ломится от зрителей

Dmitry
17.06.2017
20:39:30
что думаете про webpack-blocks ? https://github.com/andywer/webpack-blocks

Artur
17.06.2017
20:40:18
зал прям ломится от зрителей
И вообще, обзервабл звучит как выблювал

Dreamerinnoise
17.06.2017
20:40:43
И вообще, обзервабл звучит как выблювал
юзерам rx сейчас должно быть обидно

blkmrkt
17.06.2017
20:44:06


Artur
17.06.2017
20:44:37
Но мобикс мутирует. Не, не так. МУТИРУЕТ

Абрамов не одобряе

Dreamerinnoise
17.06.2017
20:47:12
Абрамов написал?

Похоже на него :3

blkmrkt
17.06.2017
20:47:21
Абрамов написал?
альберт эйнштейн

Google
Artur
17.06.2017
20:47:33
Абрамов написал?
Аккорды или табы есть?

blkmrkt
17.06.2017
20:47:49
imagine джона леннона же

Artur
17.06.2017
20:48:18
Можно и под йестердей пропеть кстати

Dmitry
17.06.2017
20:49:19
Ой, смотрю на мобх. Вроде бы прикольно, но что-то не то.

Artur
17.06.2017
20:49:47
и для этой цепочки надо несколько сторов, то эти сторы инжектить в каждый компонент
Можно сделать стор, внутри которого будут заинжекчены другие сторы, внутри которого будет вся логика, связанная с их композицией (только логика, без хранения), и всё, инжекти только его одного

https://github.com/mass3ff3ct/mobx-react-inject Вот товарищ кстати написал инжектилку для мобикса и реакта

Используем у себя, супер выходит

Инжектишь в проперти класса компонента и оно просто работает

А, ну смысл есть только с typescript, он там метаданные активно использует

Dmitry
17.06.2017
20:52:00
А что делаете с мобх ?

Artur
17.06.2017
20:52:38
А что делаете с мобх ?
Новую версию http://megaplan.ru

Кстати начинали с редаксом. Осознанно перешли на mobx. Отсутствие необходимости нормализовать/денормализовать данные от бека, производительность из коробки, куча возможностей для доп оптимизаций.

Artur
17.06.2017
20:54:10
ДЛя себя решили только одно - не используем внутреннюю магию, типа observe, reaction и так далее

Artur
17.06.2017
20:54:37
Больше мемоизированные селекторы не беспокоят?
Как только возникла необходимость написать такой селектор, я понял, что что-то идёт не в ту сторону.

Dreamerinnoise
17.06.2017
20:55:26
>reaction но ведь это основа mobx-react в чём проблема?

Artur
17.06.2017
20:56:19
>reaction но ведь это основа mobx-react в чём проблема?
Да, и мы используем в юзер-ленд коде только observer, computed, observable. Если этого не хватает значит разработчик пытается сделать что-то сложное, и он должен подумать как это можно упростить

Обычно стоит немного подумать и получается всё, код становится проще и понятнее, может быть чуть многословнее

Dmitry
17.06.2017
20:58:03
а какая структура кода выходит ? У меня предчувствие что с мобх весь код может скатиться в кашу где вся логика в компоненте

Artur
17.06.2017
20:58:33
Кстати с редаксом появляется целый класс проблем - как переиспользовать один и тот же компонент в разных местах кода. Как писать компоненты, которые могут появляться в разных местах страницы одновременно (например супер крутой умный селектор данных, который и на бек сходит, и в кеш положит, и в локалсторейдж при необходимости)

Google
Дмитрий
17.06.2017
20:59:39
Тот момент, когда разработчики настороженно избегают использования одной из основных фич технологии ?

Artur
17.06.2017
20:59:41
а какая структура кода выходит ? У меня предчувствие что с мобх весь код может скатиться в кашу где вся логика в компоненте
Может конечно, и, возможно, для прототипа это и нормально. Зато когда появится необходимость вынести стейт выше (то, что называется lifting state up), легко выделяется класс с логикой и всё.

blkmrkt
17.06.2017
21:00:16
Andrey
17.06.2017
21:00:20
Реакт - это отображение, а не логика.

Artur
17.06.2017
21:00:25
а SSR делаете?
Пока нет, но в планах есть

Andrey
17.06.2017
21:00:44
Я вообще стараюсь все компоненты имутабельными делать, чтобы мороки меньше было.

Admin
ERROR: S client not available

Artur
17.06.2017
21:00:55
Реакт - это отображение, а не логика.
В реальных приложениях хочется компонент, которому скажешь: хочу вот здесь автокомплит с сотрудниками (реальный кейз), а дальше он сам.

Дмитрий
17.06.2017
21:01:21
Этот спор по прежнему сводится к ооп vs фп. Каждый хвалит инструмент думая о тех возможностях, что он добавляет в его воркфлоу

Andrey
17.06.2017
21:01:27
В реальных приложениях хочется компонент, которому скажешь: хочу вот здесь автокомплит с сотрудниками (реальный кейз), а дальше он сам.
Ну а в чём проблема? Передаёшь данные и вот тебе автокомплит. Никакая логика по запросам внутри не нужна.

Дмитрий
17.06.2017
21:01:58
Естественно, собеседник в этот момент идеальную картину представляет себе совершенно иначе

Artur
17.06.2017
21:02:25
Ну а в чём проблема? Передаёшь данные и вот тебе автокомплит. Никакая логика по запросам внутри не нужна.
На самом деле нужна: автокомплит и в кеш пойдёт, и на бек если кеша нет, и так далее

На самом деле нужна: автокомплит и в кеш пойдёт, и на бек если кеша нет, и так далее
И поиск на беке выполнит когда юзер вводит данные в него, а может и в кеше сначала поищет

Andrey
17.06.2017
21:03:30
На самом деле нужна: автокомплит и в кеш пойдёт, и на бек если кеша нет, и так далее
Ну хорошо, передаём функцию, которую надо дёргать, чтобы данные запрашивать. Не вижу смысла эту логику внутрь компонента запихивать.

Artur
17.06.2017
21:03:34
А в компоненте страницы это выглядит просто как: <EmployeeAutocomplete value={} onChange={} />

Дмитрий
17.06.2017
21:03:53
А истина как всегда посередине
Нет, тут как раз таки наоборот — я вполне допускаю тот вариант, что один и тот же инструмент для двух разных команд будет генерировать противоположный опыт

Andrey
17.06.2017
21:03:56
Ну, такая простота фатальна, имхо.

Artur
17.06.2017
21:04:35
Ну хорошо, передаём функцию, которую надо дёргать, чтобы данные запрашивать. Не вижу смысла эту логику внутрь компонента запихивать.
Зачем её каждый раз передавать когда можно не передавать? Тут ещё такой момент - данный компонент, который я описываю, он не занимается отображением. Конечно внутри он использует некий <Select />, который уже иммутабельный, и работает только с пропсами

Google
Дмитрий
17.06.2017
21:05:14
Слои абстракции

Artur
17.06.2017
21:05:32
Но вот такие "панели", из которых соибрается приложение, у нас есть, и с редаксом возникала проблема - как разделять их стейты, приходилось вводить идентификаторы, зубодробительные редусеры с фиксацией айдишника и так далее

Andrey
17.06.2017
21:05:35
Или можно делать обёртки, чтобы использовать удобно было.

blkmrkt
17.06.2017
21:05:55
Вопрос: клиент тянет данные из апи соц. графа - юзернайм, ид, имя и еще 100 параметров. Есть какая проверенная либа для кеширования уже зарезолвленных? Можно и lru-cache, но хотелось бы что-то интегрированное с mobx например

Artur
17.06.2017
21:06:23
Или можно делать обёртки, чтобы использовать удобно было.
Так я и сделал обёртку. Но у обёртки получился стейт (то что пользователь ввёл в поиск как минимум), и с редаксом некомфортно иметь одновременно несколько таких видимых обёрток

Дмитрий
17.06.2017
21:07:16
Artur
17.06.2017
21:07:57
А в чём неудобство?
Ну вот у тебя есть 2 автокомплита, каждый из которых - инстанс одного и того же компонента, но они в разных состояниях - какой-то откыт, какой-то нет, в каком то запрос на бек начался, и так далее. Очевидно что стейты у них разные. Вопрос: как именно разрулить это с редаксом?

Дмитрий
17.06.2017
21:08:11
Точнее, скорее это неизбежно — для вашей команды редакс однозначно развернут поперек)

blkmrkt
17.06.2017
21:08:22
apollo ))
не не для graphql а просто REST

Дмитрий
17.06.2017
21:08:36
Так чтохорошо когда у всех есть выбор ?

Дмитрий
17.06.2017
21:08:47
Мой поинт в том, что вам редакс противопоказан и в этом нет ничего такого

Artur
17.06.2017
21:09:19
Сделай 2 обёртки и раздели стейт.
То есть как только разработчику надо будет в форму добавить третье поле с автокомплитом, он должен сделать ещё одну обёртку, делить стейт, и так далее

Сейчас разработчик просто такой: <EmployeeAutocomplete value={} onChange={} /> и всё

Страница 1489 из 5115