@react_js

Страница 943 из 5115
Artur
13.02.2017
14:38:02
Какие проблемы были?)
Явных не припомню. Все они были связаны в основном с появлением в объектах ранее несуществующих свойств. ну типа: import {observable} from "mobx" const store = observable({ prop1: true }) // потом где то рендерим: render() { if (this.props.store.prop2) // тут обращаемся к отсутствующему свойству } Вот если потом в сторе появится prop2 то компонент не перерисуется

Алексей
13.02.2017
14:38:16
Гриненко выступал на WSD с этим докладом
Я работал с этим очень интенсивно около года. Скажу так - BEM как методология +1, BEM как JS фреймворк -10

Denis
13.02.2017
14:38:18
Артур, может быть вообще доклад для следующего React Moscow Meetup подготовишь?

Artur
13.02.2017
14:39:11
В принципе если вот это внимательно изучить: https://mobxjs.github.io/mobx/best/react.html то проблем не будет

Google
Vladimir
13.02.2017
14:39:18
import {CyberObjectInstance} from "../../Models/BasicTypes/CyberObjectInstance"; import {Predicate, and} from "./CyberObjectsStore"; import {observable} from "mobx"; export class Store<T extends CyberObjectInstance> { @observable objects: Array<T> = []; addObject(object: T): void { this.objects.push(object); } deleteObject(object: T): void { let index = this.findIndexByUUID(object.uuid); if (index > -1) this.objects.splice(index, 1); } find(conditions: Array<Predicate<T>>): T|undefined { let worker = this.objects.find(and(conditions)); if (worker) { return worker; } else { return undefined; } } findByUUID(uuid: string): T|undefined { return this.find([(object: T) => object.uuid == uuid]); } findIndex(conditions: Array<Predicate<T>>): number { return this.objects.findIndex(and(conditions)); } findIndexByUUID(uuid: string): number { return this.findIndex([(object: T) => object.uuid == uuid]); } filter(conditions: Array<Predicate<T>>): Array<T> { return this.objects.filter(and(conditions)); } }

пример репозитория на mobx+ts

Artur
13.02.2017
14:40:13
Мобх может в кашу превратиться
Может, но дело же не в библиотеке, а в программисте. Он очень opinionless, то есть "пиши как хочешь". Достаточно выработать правила, можно почерпнуть из того же redux, из статьи "Lifting state up" документации реакта, чтобы было хорошо

Артур, может быть вообще доклад для следующего React Moscow Meetup подготовишь?
Опыта публичных выступлений нет, но я подумаю :) а где можно почиать про евент?

Dreamerinnoise
13.02.2017
14:42:45
mobx-state-tree

Pavel
13.02.2017
14:42:48
блин, только сейчас понял, что react это view, redux/mobx это модель, actions это контроллер

Dreamerinnoise
13.02.2017
14:42:50
пожалуйста, вот вам рамки :D

Mike
13.02.2017
14:43:25
ну так себе классификация

учитывая что экшны скорее часть флаксов

а не отдельно от них

Artur
13.02.2017
14:43:51
Расскажи, какие плюсы и минусы у Mobx увидел относительно Redux? Сколько примерно объектов и какой объем State был в приложении?
Плюсы - меньше кода, полное отсутствие shouldComponentUpdate, отсутствие бойлерплейта, особенно с typescript. Минусы - поначалу ловил бажки, некоторые исправил (например https://github.com/mobxjs/mobx-react/issues/124). Помоему пару раз было типа "какого хрена компонент не перерисовывается", в итоге выяснялось что где-то забыли observable. Поначалу код действительно превращается в кашицу, состояние размазывается по компонентам. Сейчас от этой проблемы ушли :) Короче возвращаться в redux желания нет.

Mike
13.02.2017
14:43:57
скорее redux store это модель

Google
Artur
13.02.2017
14:44:04
Кстати у mobx (впрочем как и у redux) очень хороший мейнтейнер. Вежливый, всё объясняет, активно принимает PR вот это всё

Vladimir
13.02.2017
15:00:21
Я работал с этим очень интенсивно около года. Скажу так - BEM как методология +1, BEM как JS фреймворк -10
У бэма все-же есть свои плюсы, с точки зрения JS. Response-based построение лэйаута. Можно в почте увидеть, что реклама приходит по сути, по блокам

Это же можно сделать и во всех остальных, но там это происходит автоматически, если блок завязан на получение информации

Pavel
13.02.2017
15:10:22
lodash же еще модно использовать?

Mike
13.02.2017
15:10:56
ну так

хз конечно

но на моем информационном фоне скорее постепенно все меньше

Сергей
13.02.2017
15:11:17
Mike
13.02.2017
15:11:19
ну и в целом es6 — не es5

рамда модно примерно только в этом чатике лол

Arsen
13.02.2017
15:11:33
Сергей
13.02.2017
15:12:32
Pavel
13.02.2017
15:12:41
о, es6 утащили из lodash все

Сергей
13.02.2017
15:13:00
из coffe много

Mike
13.02.2017
15:13:24
es6 еще и из питона и шарпов поутаскивал

а уж из тайпскрипта-то

Vladimir
13.02.2017
15:13:35
а TS вообще все лучшее собрал :D

Mike
13.02.2017
15:13:36
зато мб чет нормальное соберут

Сергей
13.02.2017
15:14:01
Google
Vladimir
13.02.2017
15:14:11
и многое не умеет
но при этом вполне активно развивается

Сергей
13.02.2017
15:14:18
Vladimir
13.02.2017
15:17:06
ты еще статью про рендер в воркерах должен

Andrey
13.02.2017
15:17:25
посоны кто юзит XO для кодестайла? (это то что от синдры) как разрешить прибиндивание через :: ?

Vladimir
13.02.2017
15:17:29
я её уже две недели жду :D

Алексей
13.02.2017
15:18:05
я её уже две недели жду :D
Помню :) Пока не как не получается. Постараюсь выкроить время чтобы дописать.

Artur
13.02.2017
15:18:24
и многое не умеет
Что именно? Компилить фишки в es5?

Для себя решил эту проблему доп компиляцией бабелем

Mike
13.02.2017
15:19:35
а чем тебя не устраивает target у ts?

Artur
13.02.2017
15:21:01
Он не поддерживает итерацию через iterator protocol если target < es2015

Alexander
13.02.2017
15:21:06
и многое не умеет
Что такого важного он не умеет?

Dmitry
13.02.2017
15:45:06
apollo рекомендую, по ощущением кода на порядок меньше чем с redux + кеширование, батчинг запросов и пр.

Dmitry
13.02.2017
15:59:18
ой)

А какие именно?) ШРИ какого года?

Vladimir
13.02.2017
15:59:41
Да любого:)

Dmitry
13.02.2017
16:00:58
ну мне сложно за всю Одессу, но по тем лекциям, что я читал, вот тут задачи https://github.com/DimitryDushkin/shri-2016-css-js Плюс можно в форках глянуть, что делали студенты (там довольно прикольно по JS, но надо строго с мобильника их смотреть)

Andrey
13.02.2017
16:34:59
пасаны, подскажите где отключить еслинт-правило для бинда двумя двоеточиями ?

Vladimir
13.02.2017
16:39:22
найти имя правла

Google
Vladimir
13.02.2017
16:39:27
выключить в конфиге

Mike
13.02.2017
16:41:42
Увидеть имя в консоли

Когда линтер падает

Andrey
13.02.2017
16:42:44
выключить в конфиге
Оно ругается на неожиданое второе двоеточие))

Ҫѐҏӗѫӑ
13.02.2017
16:45:24
потому что еслинтовский парсер (espree) этого не умеет

https://github.com/babel/babel-eslint

Vladimir
13.02.2017
16:46:08
Оно ругается на неожиданое второе двоеточие))
Наверное потомучто это stage-1 и тебя будут ненавидеть все кому придется работать после тебя

Admin
ERROR: S client not available

Ҫѐҏӗѫӑ
13.02.2017
16:46:34
0

Vladimir
13.02.2017
16:51:41
Тем более

Pavel
13.02.2017
17:20:52
ребят, как решаете проблему когда в приложении очень много модальных окон?

Sheridan
13.02.2017
17:21:20
С архитектурой что-то не так. Надо пересмотреть

Andrey
13.02.2017
17:26:53
ребят, как решаете проблему когда в приложении очень много модальных окон?
глянь как сделали в react-arc там кажысь готовое решение есть для модалок ))

Andrey
13.02.2017
17:27:33
Наверное потомучто это stage-1 и тебя будут ненавидеть все кому придется работать после тебя
спс ! +1 :) Я просто выпиливанием заняться решил. но потом подумал чтобы тесты проходили надо просто правило замутить )

Ҫѐҏӗѫӑ
13.02.2017
17:27:56
и в общем-то я с ними солидарен

Pavel
13.02.2017
17:28:52
Побить дизайнера
уточню, модалки не одна за другой вызываются. есть дэшборды, которые имеют ряд возможностей, каждая из которых провоцирует появление модалки, в которой разные сложные формы и совершенно разная логика

Vasiliy
13.02.2017
17:28:59
да, модальные контексты это не оч хоршо

Google
Ҫѐҏӗѫӑ
13.02.2017
17:29:00
хотя все равно кое-где есть модалочки

модалок со сложными формами не должно быть

Pavel
13.02.2017
17:31:10
все сущности создавать на отдельных страницах?

Nikolay
13.02.2017
17:31:57
вообще считаю модалки антипаттерном

Pavel
13.02.2017
17:32:41
а какие альтернативы? ну т.е. пример использования модалки, когда можно обойтись без нее, и что взамен?

Mikhail
13.02.2017
17:34:18
есть одна проблема, если есть одна модалка, то теоретически есть сабмодалка, и так далее…

и это никак не решить, ИМХО

Mikhail
13.02.2017
17:37:51
решение думаю только одно - найти UI/UX решение без модалок, и как показвает практика - оно всегда находится

Алексей
13.02.2017
17:40:00
имхо странно искать другое решение просто потому что модалки не нравятся

Mikhail
13.02.2017
17:41:06
«не нравяться» не совсем то, это просто не удобно

Pavel
13.02.2017
17:41:28
кейсов пока так и нет(

Vasiliy
13.02.2017
17:41:37
у раскина вроде написано много про контексты/режимы/модалки но она старая, я как-то начинал читать давно, не осилил

Алексей
13.02.2017
17:42:26
вполне удобно если использовать по назначению - акцентировать внимание юзера на каком то действии

Andrey
13.02.2017
17:49:31
да они повсюду в интирнетах. Дизайнеры это видят и рисуют так чтоб не отставать от трендов. :) а гиморой с модалками может быть в том, что на все инпуты а также теги A AREA OBJECT SVG и кроме тех что в модалке надо вешать tabindex=-1 , чтобы до них нельзя было табом переместиться.. — это конечно оверхедное решение для реактов. Но вот жыкверь с таким хорошо справлялось )

Mikhail
13.02.2017
17:52:48
один из способов избаления от модалок это затавить пользователя сделать больше действий (кликов или других дейтсвий), чтобы было «неудобно» и он задумался

если речь идет об опасных действиях, типа удаления и прочего, сори за офтоп

Dmitry
13.02.2017
18:05:25
ребят, как решаете проблему когда в приложении очень много модальных окон?
Посмотри https://medium.com/@ff87dfdc00c9/1896d4b47343 Мне хорошо подошло

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