@react_js

Страница 3013 из 5115
Stepan
25.01.2018
23:30:23
И в зависимости от состояний компонентов выдаешь разное отображение

Alesia
25.01.2018
23:30:28
Привет всем. может кто может посоветовать какую тему под webstorm для синтаксиса реакта?

Алексей
25.01.2018
23:31:46
разное отображения - имеется в виду разные стили для одного и того же элемента?

Google
Алексей
25.01.2018
23:31:55
типа селектор 1

Алексей
25.01.2018
23:31:57
стили разные

понял

Stepan
25.01.2018
23:32:05
Селекторов типа нет)

Есть компонент, его состояние и отображение

kana
25.01.2018
23:32:19
Stepan
25.01.2018
23:32:22
И они связаны напрямую

Алексей
25.01.2018
23:32:32
оу

вижу

крутяк

kana
25.01.2018
23:32:40
ну каскадность, если хочется, тоже можно заюзать

Алексей
25.01.2018
23:33:16
по хорошему, под каждый стиль компонента выделяется отдельный файл?

Google
kana
25.01.2018
23:33:17
типа const Button = styled.button``; const Wrapper = styed.div` ${Button} { color: red; } `;

но я бы не советовал

Алексей
25.01.2018
23:34:04
и как, утопаешь в стилях?

kana
25.01.2018
23:34:04
это можно решить зачастую через просто расширение стиля const MyButtonInWrapper = styled(Button)` color: red; `;

Alesia
25.01.2018
23:34:22
имела ввиду подсветку синтаксиса) сменить цвета на менее ядреные

Stepan
25.01.2018
23:34:29
и как, утопаешь в стилях?
Если не делать больших компонентов, то всё будет ок)

kana
25.01.2018
23:34:30
по хорошему, под каждый стиль компонента выделяется отдельный файл?
под каждый комопнент, который логически можно вынести и переюзать

зачем выносить Wrapper например

Stepan
25.01.2018
23:35:06
Лучше Darcula не придумали ничего

Алексей
25.01.2018
23:35:49
Понял. Спасибо за инфу, погнал я спать) Всем спокойной ночи!

Stepan
25.01.2018
23:41:53
Спокойной

Алексей
25.01.2018
23:42:40
Пока не ушёл, вопрос ещё появился. После того, как в компоненте с полями и кнопкой add произошёл submit с новым данными, нужно как то их передать в соседний компонент. Получается, их нужно сначала передать в самый старший компонент, а затем в компонент с таблицей? Т.е. source of truth будет сам app.js(враппер)?

Stepan
25.01.2018
23:44:26
Но часто бывает так, что компоненты как бы соседи, но каждый в своей ветке очень глубоко вложен

Тогда-то на помощь и приходит редакс

Алексей
25.01.2018
23:46:56
Понял. А если стейт меняется в самом app.js,то ререндер идёт от компонента, где изменился стейт и вниз по дереву? В моем случае, от app.js и вниз?

Пг
25.01.2018
23:47:59
Кароче, чуваки, немного ночной оффтопик. Можно немного померяться письками В каком самом большом проекте на реакте вы участвовали? Кол-во строчек кода/Кол-во компонентов/Кол-во людей в команде/etc.

Google
Алексей
25.01.2018
23:48:09
Или любое изменение стейта создаёт вирт дом всего приложение и ререндерит все приложение (его внутр части)?

Алексей
25.01.2018
23:49:07
В плане, место изменения стейта и вниз?

Stepan
25.01.2018
23:49:14
Да

Пг
25.01.2018
23:49:15
Или любое изменение стейта создаёт вирт дом всего приложение и ререндерит все приложение (его внутр части)?
Именно, если компонент не вернет в shouldComponentUpdate -> false, то он отререндерится

Алексей
25.01.2018
23:49:46
Спасибо

Stepan
25.01.2018
23:57:25
Или любое изменение стейта создаёт вирт дом всего приложение и ререндерит все приложение (его внутр части)?
Изменение стейта приводит к реконсилиации всего приложения, но рендеринг будет проходить только там, где нужно

Скорее всего

За такие тонкости ручаться не стану

Алексей
25.01.2018
23:58:37
Имеешь в виду изменение стейта в любом месте приложения?

Stepan
25.01.2018
23:59:56
React doesn't currently take advantage of scheduling in a significant way; an update results in the entire subtree being re-rendered immediately. Overhauling React's core algorithm to take advantage of scheduling is the driving idea behind Fiber.

Ну, кажется, с 16 версии что-то могло поменяться

Stepan
26.01.2018
00:00:31
В общем, не парься, реакт делает как можно меньше работы :)

Алексей
26.01.2018
00:01:37
Оке

Stepan
26.01.2018
00:01:44
Вообще, если это дерево, то можно проводить обновления только там, где нужно

Раз уж это рекурсивная структура

Так что, думаю, так и происходит

Впрочем, это тонкости

Алексей
26.01.2018
00:02:12
Меня успокоили слова in the entire SUBTREE

Пг
26.01.2018
00:02:17
Не будет проходить там где нужно) Доказано на практике, что shallowCompare не отрабатывает как нужно во многих случаях

Google
Пг
26.01.2018
00:02:58
Кстати, есть смысл заменить на PureComponent все компоненты у которых нету shouldComponentUpdate?

Пг
26.01.2018
00:03:39
Понял

Окей, у каких компонентов стоит заменять?

Stepan
26.01.2018
00:04:32
Предположительно, у тех, которые получают в пропсы не примитивы)

Admin
ERROR: S client not available

Пг
26.01.2018
00:04:42
И кстати, я не совсем про аддон shallow compare, я про дефолтное сравнение this.props !== nextProps || this.state !== nextState

Stepan
26.01.2018
00:05:12
Так там вроде каждую пропсу по одной сравнивают

Пг
26.01.2018
00:06:02
Предположительно, у тех, которые получают в пропсы не примитивы)
Те если компонент получает только обьекты?

Stepan
26.01.2018
00:06:31
Если примитивы получает, то в PureComponent уже всё написано

Если только их

А где именно юзать Да черт знает, где тормозит)

Пг
26.01.2018
00:08:10
Да по факту у меня ничего кроме профиля не тормозит и то только потому что я его как дебил сделал одним компонентом)

Лень было разделять и никак руки не дойдут

Google
Пг
26.01.2018
00:09:51
Кстати, можно как-то спастись от блядского ререндеринга всего и вся при рендере загрузчика?

this.state.loader ? <div className="loader" /> : <div> <Component1 /> <Component2 /> <Component3 /> </div>

Если даже на пол секунды включится loader все будет ререндерится заново, даже то что не должно этого делать, если бы оно где-то сохранилось

Или только ручками сохранять?

Дмитрий
26.01.2018
00:12:23
А в чём проблема что что-то заререндерится?

Sergey
26.01.2018
00:13:22
Или только ручками сохранять?
а что, отдельно лоадер ваще никак не показать?

ты же прямо указываешь ему всё ререндерить

Stepan
26.01.2018
00:13:50
Это в теории

А как на практике?

Стоит игра свеч?

Дмитрий
26.01.2018
00:14:44
Перфоманс — это системный подход, а не микрооптимизации)

Пг
26.01.2018
00:14:59
Stepan
26.01.2018
00:15:16
Ну там кто-то кидал пример с большим списком и PureComponent

Пг
26.01.2018
00:15:19
а половина из нее остается прежней, а то и более

Stepan
26.01.2018
00:15:20
Работало плавнее :)

Sergey
26.01.2018
00:15:37
так ведь там вся страница
ну так покажи лоадер в отдельном компоненте, а по пути уже решай, что обновить, что нет

Stepan
26.01.2018
00:15:41
так ведь там вся страница
Так по дефолту у тебя и так возвращается true почти везде

Sergey
26.01.2018
00:15:44
ты же реально написал ИЛИ лоадер ИЛИ страница

Дмитрий
26.01.2018
00:16:05
так ведь там вся страница
То есть у тебя в первую очередь медленно рендерится страница?)

Пг
26.01.2018
00:17:09
а что, отдельно лоадер ваще никак не показать?
это лоадер при переходе в профиль другого человека, но там часть, при чем приличная часть остается прежней, но где мне еще показывать лоадер, на аватарке? лол

То есть у тебя в первую очередь медленно рендерится страница?)
ну 150-200 мс, если полная инфа о профиле то гдето 300

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