
Алексей
07.01.2017
20:17:42

Dreamerinnoise
07.01.2017
20:18:21
синхронный авторан

Алексей
07.01.2017
20:18:42
вот блин

Google

Алексей
07.01.2017
20:19:28
значит по хорошему нужно расковырять исходник observer и сделать аналог observerAsync
вообще mobx наполнен какой-то магией
причём не всегда светлой
вот, например:
https://mobx.js.org/refguide/observer-component.html
"Observer only subscribe to the data structures that were actively used during the last render. This means that you cannot under-subscribe or over-subscribe. You can even use data in your rendering that will only be available at later moment in time. This is ideal for asynchronously loading data."
то есть при первом рендере идёт автоматический subscribe и всё
следовательно если в рендере будет что-то наподобие if (someCondition) value = myMobxStore.a; else value = myMobxStore.b;
то можно получить крайне неприятный баг

Dreamerinnoise
07.01.2017
20:26:21
Автору либы говорил про это?

Алексей
07.01.2017
20:27:12
это не баг, а фича mobx, которая позволяет не делать лишние рендеры
просто нужно быть аккуратным в этом месте

Дмитрий
07.01.2017
20:27:34

Dreamerinnoise
07.01.2017
20:27:43
а мне он нравится :3

Дмитрий
07.01.2017
20:27:46
Хочется поменьше ВЖУХ в приложении

Google

Алексей
07.01.2017
20:28:02
Я кстати сегодня быстренько написал мини-аналог mobx без таких вот подводных камней.
И даже Proxy не использовал

Дмитрий
07.01.2017
20:29:06
Если не слушать про абрамоугодность и выкинуть из redux экшны сами по себе, то вполне нормально получается

Алексей
07.01.2017
20:31:17
я всё-таки предпочитаю мутировать состояния, так как считаю, что для малых состояний мутабельность проще иммутабельности, а большие состояния лучше не делать, а декомпозировать на более мелкие

Dreamerinnoise
07.01.2017
20:31:20
Угу, навешал там где надо, повесил реагирование и вжух — готово!

Алексей
07.01.2017
20:31:46
никакого boilerplate и кучи кода

Dreamerinnoise
07.01.2017
20:32:17

Алексей
07.01.2017
20:32:27
простые вещи действительно делаются просто
можно даже и без классов на одних голых объектах

Дмитрий
07.01.2017
20:32:50
Для этого даже mobx не надо
Здорово, правда?))

Алексей
07.01.2017
20:33:12

Дмитрий
07.01.2017
20:33:45
Так мы же про простые вещи, пофиг же должно быть?))

Алексей
07.01.2017
20:34:14
а как тогда ререндер реакта вызывать? по таймеру?

Дмитрий
07.01.2017
20:35:05
Без понятия ?
Короче ладно, просто не нравится апелляция к простоте. Питон-стайл аргументы

Dreamerinnoise
07.01.2017
20:35:37

Алексей
07.01.2017
20:35:43
ну редакс тоже к этому любит аргументировать

Google

Dreamerinnoise
07.01.2017
20:35:51
вот момент с висящим в памяти стором — тому пример

Алексей
07.01.2017
20:36:00
а вообще простота это хорошо, если не перебарщивать
Без понятия ?
мы уже даже обсуждали это и вы как раз предложили Proxy
я собственно это сделал, только без прокси, а на геттерах и сеттерах
что как мне кажется чуть лучше из-за большей кроссбраузерности
mobx собственно тоже самое и делает

Дмитрий
07.01.2017
20:38:11

Алексей
07.01.2017
20:38:25
только ещё добавляет кое-какую магию для оптимизации

Дмитрий
07.01.2017
20:39:53
Ну так то да

Алексей
07.01.2017
20:40:29
и mobx в принципе позволяет делать простые вещи очень просто

Алексей
07.01.2017
20:40:39
даже по сравнению с redux

Дмитрий
07.01.2017
20:41:11
Новый фреймворк определенно должен располагаться где-то между вжух-магией mobx и бойлерплейтом redux

Алексей
07.01.2017
20:41:17
да даже проще, чем state из React
и я надеюсь, что моя штука (пока безымянная) как раз нащупала эту середину
более того, учитывая её простоту и простоту mobx можно даже сделать их взаимо-заменяемыми
то есть с почти одинаковым api

Дмитрий
07.01.2017
20:43:04
Я никак не могу найти статью на медиуме

Google

Дмитрий
07.01.2017
20:43:29
Про шины данных в приложении, типа redux намеренно сводит их к одной

Алексей
07.01.2017
20:44:46
да и через mobx можно сделать одну шину данных
собственно самое большое отличие mobx от redux заключается в том, что вместо store.dispatch({type: 'UPDATE_VALUE', value: 'my value'}) пишется store.value = 'my value'
вот в чём фишка

Дмитрий
07.01.2017
20:47:49
dispatch( storedValue() )

Алексей
07.01.2017
20:48:47
ну тогда придётся писать этот action creator или использовать какие-нибудь библиотеки для автоматического создания этой штуки
а в mobx достаточно написать const store = observable({value: 'some value'});

Дмитрий
07.01.2017
20:49:28

Admin
ERROR: S client not available

Cocker
07.01.2017
20:50:39
Народ, а кто какую либу для валидации форм юзает?

Дмитрий
07.01.2017
20:50:40
При написании самой логики, технически всё равно, на скольких гитхаб репозиториях расположены составляюшие стека

Алексей
07.01.2017
20:52:11
ага, только при написании самой логики на мой взгляд важно также количество кода, которое программист пишет для описания этой логики
в случае mobx это количество КРАЙНЕ МАЛО
причём mobx имеет api даже проще чем у redux, даже без дополнительных библиотек

Дмитрий
07.01.2017
20:54:29
У любого решения есть своя цена, у mobx тоже

Алексей
07.01.2017
20:54:46
то есть фактически нужно знать лишь две функции в большинстве случаев: extendObservable и observer
только вот кое-какие подводные камни в поведении есть

Таймураз
07.01.2017
20:55:18
Ребят, собираю серверное приложение, как заигнорить require('./app.scss') ?

Алексей
07.01.2017
20:55:21
но наверное они должны где-то отключаться

Nikita
07.01.2017
20:57:18
что с сафари сделали, в приватном режиме localStorage сломали?)

Таймураз
07.01.2017
21:07:33

Google

Таймураз
07.01.2017
21:09:28
Сейчас собираю приложение с помощью бабеля, валится, когда натыкается на данный require
Не хочется добавлять грязных хаков типа
require.extensions['.scss'] = function() {
return;
};
Если кто-то подскажет свой пример вебпака для сборки серверного кода- буду благодарен.

code4aman
07.01.2017
21:18:53

Dreamerinnoise
07.01.2017
21:27:25
https://twitter.com/SiliconBangalor/status/817721643053252608
кеке

Дмитрий
07.01.2017
21:29:58
:D

Lupsick
07.01.2017
21:40:39
в серверной точке входа не должно быть ничего про scss

Таймураз
07.01.2017
21:43:00
Я уже нашел решение node_modules
Когда он в externals пишет все содержимое модулей
Но решил на завтра эксперименты оставить
Спасибо за ответ)
И не удаляйте с pastebin код, мб что дельное еще найду с утра

Lupsick
07.01.2017
22:10:29
кто-нибудь юзает https://github.com/AlexGilleran/jsx-control-statements ?

Vladimir
07.01.2017
22:14:07
норм бабель плагин
посматриваю на него
но думаю рамда.конд лучше подойдёт

Aleh
07.01.2017
22:17:17
зачем? о.о

Vladimir
07.01.2017
22:18:34
что зачем?

Aleh
07.01.2017
22:19:33
jsx-control-statements

Dmitry
07.01.2017
22:20:52

Vladimir
07.01.2017
22:20:53
https://medium.com/@roman01la/the-good-and-bad-parts-of-jsx-33d01ea5c21f#.jj1g3fir5