@react_js

Страница 2317 из 5115
from
13.10.2017
15:44:08
чтоб можно было дополнять своими правилами

Алексей
13.10.2017
15:44:46
вон формик обходятся
There are two ways to use Formik: withFormik(): A Higher-order Component (HoC) that accepts a configuration object <Formik />: A React component with a render prop

Google
Алексей
13.10.2017
15:45:00
Не так уж и обходятся

from
13.10.2017
15:45:11
в смысле?)

Алексей
13.10.2017
15:45:21
ну можно да, но всё равно

как-то не то

from
13.10.2017
15:46:13
в смысле render prop для тебя "не то"? как по мне это как раз лучший способ композиции сейчас

Алексей
13.10.2017
15:46:15
причём там в проп render походу надо кидать форму

Max
13.10.2017
15:47:39


велосипед

поддерживаю алексея в плане НОС-ов

Алексей
13.10.2017
15:47:57
тем более никто не мешает сделать так: withForm(...)( ({form}) => (<form> ... </form>) )

from
13.10.2017
15:48:02
с HOC код более плоский получается
Ага, требующий больше файлов создавать

Google
Max
13.10.2017
15:48:17
каждый НОС отвечает за свою часть логики Form - за хранение стейта формы FormValidator за валидацию

from
13.10.2017
15:48:46
Чего?????
Динамически ты в хок не обернёшь

Max
13.10.2017
15:49:08
Ага, требующий больше файлов создавать
у меня на 20 форм 3 файла хоков

не вижу проблемы )

Алексей
13.10.2017
15:49:22
А зачем динамически оборачивать?

from
13.10.2017
15:49:25
у меня на 20 форм 3 файла хоков
Значит у тебя три вида формы )

Vladimir
13.10.2017
15:49:30
redux-form выглядит наиболее развитым решением

from
13.10.2017
15:49:39
Алексей
13.10.2017
15:49:52
Композиция
а HOC не композиция?

Юра
13.10.2017
15:50:10
а HOC не композиция?
Это абстракция.

Vladimir
13.10.2017
15:50:19
это я масла подливаю

Max
13.10.2017
15:50:31
redux-form выглядит наиболее развитым решением
как поздние дни Nero Burning Rome ага )

Vladimir
13.10.2017
15:50:56
как поздние дни Nero Burning Rome ага )
ну а если серьезно, кто еще поддерживает такой же функционал?

Max
13.10.2017
15:51:06
Вов, что значит “такой же функционал"?

Алексей
13.10.2017
15:51:21
redux-form выглядит наиболее развитым решением
Там Field, для которого надо ещё свой компонент писать дополнительный, если хочется что-то более сложное, чем какой-нибдуь input. Да и с редаксом не всегда такая тесная связь нужна. Но да, на самом деле redux-form пока что один из самых популярных

from
13.10.2017
15:51:30
ну а если серьезно, кто еще поддерживает такой же функционал?
Они сами виноваты, что столько функционала поддерживают)

Google
Алексей
13.10.2017
15:52:21
Статическая
а зачем тебе динамическая? и что тебе мешает в любом компоненте делать const MyFormHoc = withForm()(MyForm); и юзать как компонент, если уж так надо

Юра
13.10.2017
15:53:26
А как композиция в реакте сказывается на перформансе? Просто интуитивно кажется что делать кучу HOC-ов чревато тормозами.

Дмитрий
13.10.2017
15:53:59
Тормозами черевата плохая архитектура

Юра
13.10.2017
15:54:49
Например, в material-ui некоторые компоненты вызывают каскадное обновление что тормозит реконсиляцию.

Дмитрий
13.10.2017
15:55:03
Ну вот видишь

Алексей
13.10.2017
15:55:08
Хотя наверное можно придумать какую-нибудь магию для схлопывания этой конструкции в один компонент

Юра
13.10.2017
15:55:15
Да, лучше не делать HOC внутри HOC внутри HOC и так далее.
Но это основной подход, который предлагает recompose.

Алексей
13.10.2017
15:55:51
но это на самом деле надо на практике изучать

как это влияет на производительность

Юра
13.10.2017
15:57:41
Я думаю, что все портит React.createElement. Без него HOC-и это просто чистые функции которые могут быть очень быстро вызваны и их умеет оптимизировать компилятор.

Max
13.10.2017
15:57:47
Рекомпоуз куча народа юзает

Алексей
13.10.2017
15:58:11
Почему?₽
Ну интуитивно кажется, что на производительность негативно повлияет. Точнее точно повлияет, но вот насколько - это большой вопрос

Юра
13.10.2017
15:58:50
Это проблема архитектуры реакта кмк
Ну, это не то, чтобы проблема прям. Просто провод для улучшения.

Алексей
13.10.2017
15:59:13
А кто знает что именно делает React.createElement? Просто констурирует plain js object?

from
13.10.2017
16:02:27
а зачем тебе динамическая? и что тебе мешает в любом компоненте делать const MyFormHoc = withForm()(MyForm); и юзать как компонент, если уж так надо
с телефона до этого был Короче Каждый раз когда кто-то пишет export withStuff(Component) он теряет весь смысл разделения компонентов на презентейшнл и контейнеры Теперь навсегда Component привязан к определённой логике / конфигурации (смотря что хок делает). Иногда это оправдано. Чаще — нет. Но так или иначе мы потеряли возмножность "предоставить" функционал там, где он внезапно понадобился представим, что мой мегаполезный hoc withStuff() действительно делает че-то полезное, что может пригодиться очень часто. Пишу-пишу я лейаут типа <div><h1>stuff info</h1></div> и вдруг понимаю, что в заголовке мне было бы так здорово иметь те данные, которые даёт withStuff. Что делать? Создавать новый файл с компонентом, оборачивать его в withStuff, импортить, вставлять в h1 А имея умный компонент, который представляет данные через render prop, у нас получится живая композиция: <div> <h1> stuff info: <WithStuff render={data => <span>{data.info}</span>} /> </h1> </div> это мегаудобно

Igor
13.10.2017
16:03:16
А кто знает что именно делает React.createElement? Просто констурирует plain js object?
afaik да, элементы это просто js объект у которых поле тип, пропсы и тд

Google
Юра
13.10.2017
16:03:44
А кто знает что именно делает React.createElement? Просто констурирует plain js object?
Ну, в этом ведь месте создаётся элемент. Суть HOC-а в том, что он оборачивает в себя ещё один элемент и их становится аж два. Хотя по факту, это должна быть не объектная композиция а простая функциональная.

Алексей
13.10.2017
16:03:57
тогда да, надо запилить компилятор jsx в те самые объекты

Юра
13.10.2017
16:05:15
Потому что стек не резиновый
Оптимизацию хвостовых вызовов вроде обещали.

Admin
ERROR: S client not available

Дмитрий
13.10.2017
16:06:21
Оптимизацию хвостовых вызовов вроде обещали.
Не скоро ещё будет, авторам движков не нравятся текущие предложения

Юра
13.10.2017
16:06:42
Кто обещал?
Хз. Вроде было что-то.

Дмитрий
13.10.2017
16:06:55
Формально в es6 уже есть оптимизация, но все её вертели

Алексей
13.10.2017
16:07:11
с телефона до этого был Короче Каждый раз когда кто-то пишет export withStuff(Component) он теряет весь смысл разделения компонентов на презентейшнл и контейнеры Теперь навсегда Component привязан к определённой логике / конфигурации (смотря что хок делает). Иногда это оправдано. Чаще — нет. Но так или иначе мы потеряли возмножность "предоставить" функционал там, где он внезапно понадобился представим, что мой мегаполезный hoc withStuff() действительно делает че-то полезное, что может пригодиться очень часто. Пишу-пишу я лейаут типа <div><h1>stuff info</h1></div> и вдруг понимаю, что в заголовке мне было бы так здорово иметь те данные, которые даёт withStuff. Что делать? Создавать новый файл с компонентом, оборачивать его в withStuff, импортить, вставлять в h1 А имея умный компонент, который представляет данные через render prop, у нас получится живая композиция: <div> <h1> stuff info: <WithStuff render={data => <span>{data.info}</span>} /> </h1> </div> это мегаудобно
Понял. Тогда в своей """идеальной""" библиотеке для форм запилю такую возможность.

from
13.10.2017
16:07:50
Понял. Тогда в своей """идеальной""" библиотеке для форм запилю такую возможность.
;) формик без труда это добавил, изначально сделав только хоки

from
13.10.2017
16:08:41
да и вообще из хока сделать компонент с рендер-пропсом легко

Andrey
13.10.2017
16:09:26
@ZeroBias Бань вадима

Алексей
13.10.2017
16:10:02
recompact
Кстати, вроде бы его когда-то находил

from
13.10.2017
16:10:02
да и вообще из хока сделать компонент с рендер-пропсом легко
я собственно результаты recompose'а так перевоплощаю в удобные компоненты которые можно где угодно "на месте" использовать

Google
Anatolii
13.10.2017
16:12:48
Может кто объяснить разницу работы проимисов с await и через then? 1) const response = await fetch(...) const { errors, data } = await response.json(); return { errors, data } 2) fetch(...).then(data=>).errors(...)

Igor
13.10.2017
16:13:18
вроде никакой - первый вариант разворачивается в тот же промис

Andrey
13.10.2017
16:13:30
Дополню вопрос. Почему надо писать await data.json()?

from
13.10.2017
16:13:31
задай вопрос точнее

Дополню вопрос. Почему надо писать await data.json()?
потому что data.json() возвращает промис

Andrey
13.10.2017
16:14:02
потому что data.json() возвращает промис
Хм... А вот это новость. А зачем так сделали?

Anatolii
13.10.2017
16:14:06
задай вопрос точнее
Для чего используется первый тогда?

Anatolii
13.10.2017
16:14:36
from
13.10.2017
16:15:02
await
синтаксис более удобный по мнению части людей

(иными словами большинства)

Anatolii
13.10.2017
16:15:29
че за .errors кстати oO
ну я забыл как там после .then )))

from
13.10.2017
16:16:11
по сути да но это не "и только", это даёт способы вообще многое по-другому записать

Vsevolod
13.10.2017
16:23:08
Всем привет кто сможет помочь по реакту? https://codepen.io/vsevolodkurochka/pen/KXxvbb Работает только первый селект и то не правильно, не могу понять в чем проблема

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