
Vladimir
12.01.2017
12:40:13
@question
Гайз, а webpack 2.0 можно юзать уже? Или лучше пока 1.х версию?

Andrey
12.01.2017
12:40:36
можно, многие уже используют

Nikita
12.01.2017
12:40:54
я так понял стоит как минимум ветку создать и потестить свое приложение с 2 вебпаком) пора)

Таймураз
12.01.2017
12:40:55
phenomic лучше, говорят, чем gatsby и реакт статик

Google

Iaroslav ¯\_(ツ)_/¯
12.01.2017
12:41:21

Таймураз
12.01.2017
12:41:29
Но я сам все еще думаю, на чем статичный сайт- лендинг сделать

Vladimir
12.01.2017
12:42:00
Просто появилась задачка на обновление проекта, руки в принципе развязаны, но время нужно расходовать экономно
ДУмаю пока что стоит обновлять из инструментов и библиотек

Savo
12.01.2017
12:42:31
Note:
If you want to access the event properties in an asynchronous way, you should call event.persist() on the event, which will remove the synthetic event from the pool and allow references to the event to be retained by user code.
> event.persist() - is not a function, втф?

Aleksey
12.01.2017
12:44:16
> Savo
> event.persist() - is not a function, втф?
что за юзкейс?

Andrey
12.01.2017
12:47:20

Sergey
12.01.2017
13:05:58
народ, а displayName у компонента есть вообще смысл пользоваться?
или это устаревший API?

Andrew
12.01.2017
13:09:17

Sergey
12.01.2017
13:09:42
ну в доках так же написано, просто редко видел, что пишут) спасибо
просто из прода наверное убирают

Google

Aleksey
12.01.2017
13:10:04
просто реакт сам умеет добывать это
явно никто давно уже не пишет. в 0.13 это еще было как-то оправдано при создании через createClass. сейчас у стейтлесс компонентов или extends Component все достается через constructor.name

Igor
12.01.2017
14:43:12
Заранее извините за простыню не очень качественного кода. Получил в "наследство" проект, а там в контейнерах (во всех 25-ти) пикрелейтед код в render методе. Раньше такой способ передачи пропсов и экшенов не встречал. Помогите понять что хотел сказать прошлый разработчик, пожалуйста :)

Gordey
12.01.2017
14:45:39
адочек чет не

Aleh
12.01.2017
14:47:12
похоже автор кода начитался исходников react-router

Даниил
12.01.2017
14:47:25
ну он "апгрейдил" чилды

Aleh
12.01.2017
14:47:49
в общем да, он в чайлды докидывал еще какие-то проперти

Dmitry
12.01.2017
14:48:04
Я боюсь даже представить, сколько у него там методов еще

Aleh
12.01.2017
14:48:15
зачем это делать так абсолютно ясно, потоум что не было времени разбираться как делать надо
а все внимательно смотрите, вот такое нас скоро ждет react-legacy

Igor
12.01.2017
14:53:43
Ну судя по коммитам, человек разбирался с реактом и галпом, а потом ридакс подключил, а потом ещё пару модных либ, а потом на вебпак пересел. Я на всякий случай спросил, а то вдруг я что-то проспал и уже кто-нибудь в твиттере посоветовал клонировать элементы при каждом рендере вместо простой передачи атрибутом ?

Aleksey
12.01.2017
14:55:01
судя по здоровой портянке аттрибутов там просто кривая архитектура компонентов когда все на свете тянется от самого верха

from
12.01.2017
15:06:59
блин а вот даже если не смотреть на то как криво переданы все эти пропсы и представить, что они переданы нормально
Часто ли такое _количество_ пропсов оправданным бывает? Что за проект такой? Что за интерфейс, где один компонент столько данных берёт?
или действительно просто логические блоки которые как сказали выше "тянут всё на свете от самого верха" )

Dmitry
12.01.2017
15:07:48
Количество пропсов - может быть таким, но под каждый проп свой метод - как-то ту мач

from
12.01.2017
15:08:20

Dmitry
12.01.2017
15:10:08
У меня была куча пропсов, когда был компонент карточки с рейсами на самолеты, много инфы надо выводить

Lupsick
12.01.2017
15:12:34
я подобную хуйню завернул в объект и передавал один объект со всеми функциями
но нормальное решение тоже хз какое

from
12.01.2017
15:13:15

Google

a
12.01.2017
15:13:59
а почему бы просто не импортить эти экшены в самих компонентах? в чем преимущество передачи их как пропс?

Igor
12.01.2017
15:18:49

Alexander
12.01.2017
15:18:49
если не ошибаюсь, в render точно нельзя, потому что возвращает всё время новые функции. и bind(this) тут не делают. обычно же в lifecycle методах
вернее в конструктор пихают

Igor
12.01.2017
15:22:05
но нормальное решение тоже хз какое
Мне видится выпилить все методы из контейнера и записать их в виде селекторов. {childrenWithProps} заменить на реальные компоненты, так как контейнер нигде не переиспользуется. Ну и стейт пересмотреть, он раздут конечно и повторяет API бекенда.
Ну и да, проптайпов нет, тестов нет и походу половина пропсов просто нигде не используется :)

Name
12.01.2017
16:12:41

Dmitrii
12.01.2017
18:26:26
где вы обычно показываете индикатор загрузки данных? в самом компоненте , или в контейнере, который рендерит либо лоадер, либо компонент с чем либо

Dmitry
12.01.2017
18:49:49
В большинстве случаев в контейнере, за исключением некоторых кейсов, где лоадер - один из частых кейсов
Например, в кнопках лоадер обычно встроенный делаю.

Tim
12.01.2017
19:19:03
Уважаемы, подскажите есть ли какая-то библиотека или бест практис чтобы рендерить компоненты в зависимости от устройства для мобилок одни компоненты, для десктопов другие?

Vladimir
12.01.2017
19:20:04

Vladimir
12.01.2017
19:20:22
Тебе надо детектить user agent
Вот это и гугли

Tim
12.01.2017
19:22:27
Тебе надо детектить user agent
это понятно, но не ужели ни кто с таким не сталкивался и нет чего-то что работало бы как реакт-роутер например. Только смотрело бы не за урлами а за user agent

Vladimir
12.01.2017
19:23:03
Сталкивались. Но это решается точно также как и не в реакте

Oleg
12.01.2017
19:25:13
кто имел дело с тематизацией стилей компонент?

Alexander
12.01.2017
19:27:04
styled-components там в презентации что-то было про это
подскажите, как лучше готовить формы?
форме есть поля: first name, last name, phone, email.. всё надо провалидировать.. видел решение c выносом каждого поля в отдельный компонент типа
<TextInput
uniqueName="email"
text="Email Address"
minCharacters={6}
validate={this.validateEmail}
onChange={this.handleEmailInput} />

Алексей
12.01.2017
19:48:46

Google

Алексей
12.01.2017
19:50:17
точнее за шириной окна страницы

Tim
12.01.2017
19:51:37

Алексей
12.01.2017
19:52:43
ну тогда уж useragent

Maxim robox
12.01.2017
19:53:19

Admin
ERROR: S client not available

Maxim robox
12.01.2017
19:54:08
Но вообще да. Надо еще учитывать Scale factor или как его там.
Ну user agent это точно тупиковый путь.

Vladimir
12.01.2017
19:58:28
лучше нет

Maxim robox
12.01.2017
19:59:36
Медиа запросы, не?

Dmitry
12.01.2017
20:04:01
Медиа кверисы на самом деле более тупиковый путь, когда речь не о лендингах

Maxim robox
12.01.2017
20:06:12

Dmitry
12.01.2017
20:08:20
В итоге или приходится отказываться от удобства пользования на одном из устройств, или вставлять по две версии блоков сразу и через стили только показывать нужные, что в итоге сильно перегружает хтмл ( не говоря даже о том, что джсная логика тоже может отличаться )
Я всегда за вариант отдельной мобильной версии с переключением на бэке, если только не что-то простенькое.

Vladimir
12.01.2017
20:10:58
медиа квери на самом деле более менее вариант

Maxim robox
12.01.2017
20:12:20

██████
12.01.2017
20:14:35
Всем алоха!
Кто знает как настроить вебпак так, что бы он создавал отдельные бандлы для каждого роута проекта?

Paruyr
12.01.2017
20:14:49
Про Tree-Shaking ничего сказать не могу

Andrew
12.01.2017
20:15:13

██████
12.01.2017
20:15:24
т.е. я хочу указать точку вхождения
src/pages/*/index.js,
а на выходе получить
dist/pages/page1.js
dist/pages/page2.js

Google

██████
12.01.2017
20:15:36
очень актуальный вопрос) уже часа 2 с этим мучаюсь)

Paruyr
12.01.2017
20:15:38
Next.js нужен

██████
12.01.2017
20:16:09
а без него нельзя? это же рендер на сервере, верно?

Oleg
12.01.2017
20:16:12

Paruyr
12.01.2017
20:16:16
Можно сделать JSON-файл, который будешь наполнять, а из него собирать вебпак-конфиг
Так то модуль конфига может и функцию экспортировать, которая уже возвращает объект конфига. Просто делаешь в ней fs.readdirSync и все

██████
12.01.2017
20:17:36
ну это понятно, просто думал что уже кто-то позаботился об этом и есть простое готовое решение =С

Paruyr
12.01.2017
20:18:22
Буквально десять строчек кода. Есть где-то плагин для i18n, который генерирует кучу бандлов с разными языками. Тут похожий принцип

Vladimir
12.01.2017
20:18:39

Paruyr
12.01.2017
20:19:34
Просто в нем этот вопрос решен, меньше телодвижений

Vladimir
12.01.2017
20:20:43
ну он про другое

██████
12.01.2017
20:21:20
кстати, а чем чанки от бандлов отличаются?

Vladimir
12.01.2017
20:23:18
чанки это маленькие бандлы