
Kirill
15.05.2017
08:40:31

Dmitry
15.05.2017
08:40:49
PureComponent?

Artur
15.05.2017
08:41:32
Проверка глубокая?
Без проверок, стейт сам реактивный.
Грубо говоря, компонент в момент рендера обращается к частям стейта, mobx трекает обращение и в следующий раз при изменении только того, к чему обратился компонент, обновляет его


Art
15.05.2017
08:48:17
Если кому нужно, написал либу для себя. Библиотека переключает элементы на веб-странице. весит 3кб в минифицированном виде. Скоро обновлю ее, должна весить еще меньше.
Для использования нужно установить табы и блоки, последнее впрочем не обязательно. Табы/блоки (можно использовать для SPA-приложений, таб как ссылка, блок как страница, при нажатии на таб переключается блок) и просто табы без блоков, например для переключения языка en/rus/de.
Используется один обработчик событий на коллекцию NodeList (например на множество элементов "<li></li>") и внутренне кеширование (что ранее было включено то и отключается), тем самым минимизируется обращение к DOM.
Так же можно к одиночном элементу привязать (к id или любому другому тегу или классу) и расположить произвольно на странице.
Можно еще сделать так, чтобы при активации одно таба/блока, все остальные экземпляры с табами и блоками закрывались, или добавить комбинации, которые поваляют закрывать одни и не трогать другие.
Подробно в readme и в примерах. Читать лучше последовательно.
Примеры: https://artnv.github.io/switcher/index.html
github: https://github.com/artnv/switcher

Google

Max
15.05.2017
08:51:05
а какое отношение к реакту имеет? )
А, просто дом. Ну ок.

localvoid
15.05.2017
08:53:09
видимо демонстрация того какие извращения приходится делать без реакта

Nikita
15.05.2017
08:53:59


Dmitry
15.05.2017
08:55:32
Если кому нужно, написал либу для себя. Библиотека переключает элементы на веб-странице. весит 3кб в минифицированном виде. Скоро обновлю ее, должна весить еще меньше.
Для использования нужно установить табы и блоки, последнее впрочем не обязательно. Табы/блоки (можно использовать для SPA-приложений, таб как ссылка, блок как страница, при нажатии на таб переключается блок) и просто табы без блоков, например для переключения языка en/rus/de.
Используется один обработчик событий на коллекцию NodeList (например на множество элементов "<li></li>") и внутренне кеширование (что ранее было включено то и отключается), тем самым минимизируется обращение к DOM.
Так же можно к одиночном элементу привязать (к id или любому другому тегу или классу) и расположить произвольно на странице.
Можно еще сделать так, чтобы при активации одно таба/блока, все остальные экземпляры с табами и блоками закрывались, или добавить комбинации, которые поваляют закрывать одни и не трогать другие.
Подробно в readme и в примерах. Читать лучше последовательно.
Примеры: https://artnv.github.io/switcher/index.html
github: https://github.com/artnv/switcher
?


Art
15.05.2017
08:57:58
Покажите быстрые сайты на реакте), Я как не зайду на сайт, вижу гуризится чуть ли не минуту, тормозит при переключении, открываю код и вижу "реакт".
например kp.ru
это же ужос, визуально можно сделать в 50кб кода макимум

Dmitry
15.05.2017
08:58:53
fb? :)

Art
15.05.2017
08:59:09
kp.ru о, загрузился за 2.6 минут))

KlonD90
15.05.2017
08:59:25
anews.com

Art
15.05.2017
08:59:34
если бы увидел, то наверн использовал бы

KlonD90
15.05.2017
08:59:47
но там серверный ррендеринг

Google

Nikita
15.05.2017
08:59:56

Alexey
15.05.2017
09:01:10
без кеша

Oleg ?
15.05.2017
09:01:14
SoundCloud

Dreamerinnoise
15.05.2017
09:01:35

Alexey
15.05.2017
09:02:03
сама страница отадалась меньше чем за секунду, дальше всякая статика

Art
15.05.2017
09:02:31
а че его прям трясет при скроллинге, прям рывками
причем скроллинг по ранее полученным данным

Max
15.05.2017
09:03:14

Artur
15.05.2017
09:03:52
это звучит ужасно
Только звучит, у меня первые впечатления были такие же. Ровно до того раза, когда я потратил несколько часов на написание *сложных* should component update.

Art
15.05.2017
09:04:04
а бек-енд у них node?

Oleg ?
15.05.2017
09:04:29

Artur
15.05.2017
09:04:31
это звучит ужасно
Вот статья, которую не устану приводить в качестве пруфа: https://habrahabr.ru/post/304340/ (читать до конца)

Oleg ?
15.05.2017
09:04:38
Там просто картинок очень много

Art
15.05.2017
09:09:21
а с другими библиотеками как реакт использовать?
например всякие d3 с графиками
они то с DOM работают

Oleg ?
15.05.2017
09:11:00
Что то типо того: http://www.reactd3.org/
Но они как то забросили проект(

localvoid
15.05.2017
09:12:00

Google

Art
15.05.2017
09:13:53
просто инжектить в div результат или как-то по умному реакт дружит с обычными либами?)

Artur
15.05.2017
09:13:55

Алексей
15.05.2017
09:14:15

localvoid
15.05.2017
09:14:32

Artur
15.05.2017
09:15:24

Art
15.05.2017
09:16:09
которые с DOM работают

Алексей
15.05.2017
09:16:34

Dmitry
15.05.2017
09:16:55
Грань после первого слова)

Art
15.05.2017
09:17:54
так как?
вот допустим пример https://www.flightradar24.com/
каждая страница будет с разным модулем которая использует свою библиотеку. Как бы вы ее сделали с реактом?

Oleg ?
15.05.2017
09:19:37
Если хорошая фантазия и ты умеешь хорошо жанглировать в голове состоянием приложения, то можно любую из них использовать
Но это будет очень больно, страшно и плохо

Art
15.05.2017
09:20:23
в итоге приходим к обычному программированию на js?)
без реакта

Oleg ?
15.05.2017
09:21:00
Нет, мы берём всё что на JQuery, etc... и переписываем на реакт
В целом, как показывает практика, все эти свистелки перделки:
a) не нужны
б) легко переписываются под нужды проекта
Некоторые вещи не обязательно переписывать, просто не понятна грань
Если либа что - то меняет в доме, то есть вероятность, при изменении стейта приложения, что твой элемент уже будет обращаться к несуществующему компоненту

Google

Oleg ?
15.05.2017
09:23:38
Вернее твоя либа
Не элемент

Art
15.05.2017
09:24:07
ну а если серьезно. В каждом окне используется своя либа, в одном - жкуери для анимации, формы и фотогаллерея, во втором тяжеловесная для работы с картами, во втором библиотека UI какой-нибудь CRM, в третим для работы графиками, в четвертом реалтайм инфа, сводки и тд, чат и проче
и все эти либы по жесткому используют DOM, как быть?

Oleg ?
15.05.2017
09:24:41
Возможно реакт в данном случае не подходит
Писать по старинке

localvoid
15.05.2017
09:24:52

Art
15.05.2017
09:24:54
вооо, заметил!

Oleg ?
15.05.2017
09:24:56
Реакт - это не серебрянная пуля

Admin
ERROR: S client not available

Art
15.05.2017
09:25:03
и тут приходит моя либа на помощь))))))))))))))))))

Сергей
15.05.2017
09:25:16
пздц

Oleg ?
15.05.2017
09:25:17
И что за либа?

Art
15.05.2017
09:25:21
опа https://artnv.github.io/switcher/
???

Сергей
15.05.2017
09:25:30
она умеет только табы?
tab-only?

Art
15.05.2017
09:25:45
да в описании там много чего

Oleg ?
15.05.2017
09:25:50
И зачем?

Igor
15.05.2017
09:26:09
Что бы было!

Google

Oleg ?
15.05.2017
09:26:12
Я могу и без неё впихнуть реакт в отдельный DOM элемент, а JQuery в другой

Igor
15.05.2017
09:26:13
Потому что может!

Art
15.05.2017
09:26:22
да если и без моей, но вообще придется на чистом ведь писать?

Кирилл
15.05.2017
09:26:29
обосрать либы и пропихнуть свою

Oleg ?
15.05.2017
09:26:52
Нет

Igor
15.05.2017
09:27:03

Art
15.05.2017
09:27:03
а что будет если заказчик захочет новую фитчу вставить или дополнить функционал, а весь проект полностью на реакте и прям большоооой
и что делать в таком случае?

Igor
15.05.2017
09:27:18

Кирилл
15.05.2017
09:27:29
использовать твою либу конечно же

Oleg ?
15.05.2017
09:27:38
Вставляешь новую фитчу в отдельный DOM элемент, который не обновляется

Ҫѐҏӗѫӑ
15.05.2017
09:27:39
Оконечников продает свой контрибуторский тикет на реакт европ
они по 200 евро были вроде
https://twitter.com/okonetchnikov/status/864043327217430529
налейтай

Oleg ?
15.05.2017
09:28:17
В реакте, можно сказать, не обновляй этот компонент

Ҫѐҏӗѫӑ
15.05.2017
09:28:18
ща тикеты только по 2к евро

Oleg ?
15.05.2017
09:28:25
Внутри функции shouldUpdate
А онлайн трансляция будет?

Ҫѐҏӗѫӑ
15.05.2017
09:29:44
хз
я и в том году там на месте был

Oleg ?
15.05.2017
09:29:52
@artnv Не подумай, что мы злые, просто она не нужна)