@react_js

Страница 378 из 5115
Andrey
10.08.2016
07:26:02
да, мы используем

Paul
10.08.2016
07:29:38
Fluxible - это хорошо

Konstantin
10.08.2016
07:33:09
На fluxible вроде тинькофф сидит и авад

Konstantin
10.08.2016
07:43:02
Дайте линку на Nodejs чатик, пожалуйста

Google
Антон
10.08.2016
07:43:07
Парни, я тоже сижу на нем же, сейчас пришел в большую компанию, которая тоже сидит на нем и столкнулся с тем что сторы и экшены они решили изолировать и держать рядом с компонентами, т е они не глобальны. Кто-нибудь еще так делает?

Evgeny
10.08.2016
07:44:21
А чем это от сетстейт отличается?

Антон
10.08.2016
07:45:08
тем что в стор диспатчит, но вопрос хороший да.

Victor
10.08.2016
07:48:54
https://telegram.me/nodejs_ru

Oleh
10.08.2016
07:54:14
ребят, вопрос больше не по реакту а общий. Как вы разруливаете ситуацию, когда допустим нужно сделать одно и тоже действие но либо после синхронной операции, либо после асинхронной(-ых)? if (someCondition) { asyncFn().then(()=>{resultFn()}); } else { syncFn(); resultFn(); } Асинхронных может быть и не 1, а больше

Alex
10.08.2016
07:56:13
await?

если не подходит то обернуть синхронный в промайс и работать с ними одинаково

Ярослав
10.08.2016
07:57:24
Alex
10.08.2016
07:57:39
Промис гарантированно асинхронный
у него первый вариант синхронный а второй нет

Alex
10.08.2016
07:57:51
обернуть второй в промайс и оба будут "асинхронные"

Ярослав
10.08.2016
07:58:37
Я думаю вопрос не в том, чтобы сделать второй асинхронным

Google
Brs
10.08.2016
07:58:55
промис же, не промайс

простите не удержался

Zapix
10.08.2016
07:59:33
а почему await не подходит?

Ярослав
10.08.2016
07:59:51
Потому что это сахар для промиса

Zapix
10.08.2016
08:00:59
и что? удобней же будет? if (someCondition) { await asyncFn(); } else { syncFn(); } resultFn();

Alex
10.08.2016
08:02:47
Потому что это сахар для промиса
Поди на ассемблере кодишь? к черту весь этот сахар

Ярослав
10.08.2016
08:10:59
и что? удобней же будет? if (someCondition) { await asyncFn(); } else { syncFn(); } resultFn();
ну если автору так больше нравится и если он не против, что его функция-обёртка теперь тоже станет промисом, то вперёд

Антон
10.08.2016
08:11:27
А чем это от сетстейт отличается?
Дегидрейт и регидрейт еще чтобы работал. Вообще кто сидит на fluxible - ответьте плиз одним словом. Считаете ли вы бредом попытки изолировать стор, если данные из него только в одном компоненте например используются?

Ярослав
10.08.2016
08:12:55
Антон
10.08.2016
08:19:51
и еще вопрос ко всем по реакту - делает ли кто нибудь так, что компоненты полностью изолированы так, что не только верстка с props и стили полностью независимы а еще и каждый такой независимый компонент вызывает action который что-то диспатчит в стор самостоятельно а не вызывает какой-то колбек из пропсов. PS сам я считаю адекватным вызовы экшенов кранить в каком-то более объемлющем компоненте, который компонентам типа всяких кнопочек передает в пропсах типа onClick={::this.sendMessageAction}

Алексей
10.08.2016
08:33:01
Этот SharedButton имеет доступ к стору?
SharedButton - да, Button вообще должно быть пофиг, что ты там используешь в качестве стора. Все что он знает это свои пропс

Алексей
10.08.2016
08:34:41
А что такого что у тебя где то болтается в ui кнопка которая диспатчит экшн, которая дергает стор который рассылает уже результаты по другим компонентам? Это и есть парадигма flux
в том, что этот ui нельзя взять и заменить на другой, с таким же интерфейсом, но с другой реализацией, потому что он напрямую связан с твоим стором

Dmitry
10.08.2016
08:34:46
>onClick={::this.sendMessageAction} oh no

Google
Алексей
10.08.2016
08:35:52
У меня вообще на три уровня разделения идет: ui/component/container

Zapix
10.08.2016
08:36:23
ну можно использовать hoc и оборачивать уже определенный компонет.

Алексей
10.08.2016
08:36:47
Konstantin
10.08.2016
08:36:54
Логика должна реализовываться на уровне проекта где ui используется

Zapix
10.08.2016
08:37:07
я как понимаю контейнер это когда что-то связывается со стейтом

Zapix
10.08.2016
08:37:35
если связи со стейтом нет, то hoc не обязательно создает контейнер

Алексей
10.08.2016
08:37:35
Разделение то просто, компонент берет данные из пропсов, контейнер из стора

если связи со стейтом нет, то hoc не обязательно создает контейнер
тогда перефразирую, контейнер чаще всего и есть hoc

Zapix
10.08.2016
08:44:24
тогда перефразирую, контейнер чаще всего и есть hoc
ну чаще не чаще это кто-как использует. к примеру есть компонент Pretty, который делает кроссивым надпись<Pretty label=«hello» /> мы можем создать hoc fullName: const fullName = BaseComponent => ({ user }) => <BaseComponent label={${user.firstName} ${user.lastName}} /> тогда fullName(Pretty) - компонента а если уже использовать connect то получим контейнер. compose( connect(state=> ({user: state.user})) fullName )(Pretty)

Konstantin
10.08.2016
08:44:45
Поэтому и был собственно вопрос, я привык делить компоненты на умные и глупые.
Ну умные компоненты это те которые имеют собственную логику, это не конфликтует с тем что такой компонент является uiшным

Oleh
10.08.2016
08:53:31
ребят, вопрос больше не по реакту а общий. Как вы разруливаете ситуацию, когда допустим нужно сделать одно и тоже действие но либо после синхронной операции, либо после асинхронной(-ых)? if (someCondition) { asyncFn().then(()=>{resultFn()}); } else { syncFn(); resultFn(); } Асинхронных может быть и не 1, а больше
Я имею ввиду что таких внутренных промисов может быть несколько и на любом уровне промиса можно вызвать resultFn(), то есть по сути он должен выполнится в любом случае, даже если reject или в случае невыполнения условия, вот я могу конечно написать в нескольких местах вызов одно и того же, но хотелось бы сделать вызов 1 раз для любого случая

Zapix
10.08.2016
09:00:13
ну ты можешь всю логику обернуть в promise или сделать async функцию, а потом вызвать твою resultFn для async/await: async function action() { try { await yourFn(); // здесь вся твоя сложная логика } catch(e) { handleError(e); } resultFn(); }

Oleh
10.08.2016
09:03:49
ок, а без async/await

получается все равно по сути обертку, так?

Zapix
10.08.2016
09:04:33
Ну да.

Oleh
10.08.2016
09:04:42
просто в асинхронном случае промис вернет сразу допустим resolve

ой, в синхронном имел ввиду

Google
Dmitriy
10.08.2016
09:36:29
как сделать, чтобы уведомления были совсем отключены? у меня появляется кол-во непрочитанных сообщений в таскбаре (мак ос)

Ярослав
10.08.2016
09:37:08
просто в асинхронном случае промис вернет сразу допустим resolve
промис всегда работает асинхронно. У него нет синхронной версии.

Dmitriy
10.08.2016
09:42:58
спасибо!

Lupsick
10.08.2016
09:51:37
https://github.com/carteb/carte-blanche

че думаете?

Admin
ERROR: S client not available

Vladimir
10.08.2016
09:52:46
думаю, что достаточно хорошая штука

Valentin
10.08.2016
10:03:51
я не смог завести. Но это может быть со мной что-то не так

Lupsick
10.08.2016
10:05:53
как я понимаю для чисто фронтэндеров без данных норм вариант

Максим
10.08.2016
10:20:14
А тут есть Relay товарисчи?

только начал вчехлять с Relay и не могу понять как нужно производить мутацию, которая должна создавать новую ноду, а не модифицировать существующую

Roman
10.08.2016
10:40:13
Ребята, привет) назрел вопрос по nda. Представьте, что вы работаете над проектом под nda. У вас есть какая-то задачка...ну например компонент слайдера реализовать. Вы его реализовываете и понимаете, что не плохо получилось, это может быть ценно сообществу. Выносите свой компонент в npm пакет, публикуете. На проект уже его подключаете как внешнюю зависимость. Так вот это является нарушением nda? Как вообще такую ситуацию можно развести, на усмотрение работодателя?

Alexander
10.08.2016
10:41:04
Читай nda, там всё написано =)

Либо перед подписыванием надо уточнить такие кейсы и внести их в nda

По-хорошему

Roman
10.08.2016
10:42:27
ну в nda само собой будет написанно что нельзя передавать код 3-м лицам

Alexander
10.08.2016
10:42:56
Значит нельзя =)

Alexander
10.08.2016
10:43:26
Просто иногда в nda учитывается, что есть код попадающий под коммерческую тайну и есть код, не являющийся коммерческой тайной

Google
Alexander
10.08.2016
10:44:03
>но если поговорить с работодателем - обычно такие вещи они воспринимают нормально и дают свое разрешение +1

Roman
10.08.2016
10:48:41
@drakmail @DenisIzmaylov @Ai_boy спасибо, в общем ход мысли ясен

Nikita
10.08.2016
11:02:13
народ, а кто в GQL/falcor балуется. Сложилось ощущение, что falcor подзаброшен, это так?

Ches
10.08.2016
12:22:49
а где ссылки на все чатики?

Алексей
10.08.2016
12:29:21
почемуто убрали Параллельно с этой группой развиваются: ?@react_js - где мы общаемся на технические вопросы, где мы общаемся на темы, посвященные React, Redux и Relay. Обсуждаем идеи и новости. Обмениваемся своими проектами и решениями. ?@angular_js - где мы общаемся на технические вопросы, посвященным разработке с Angular 1.x, включая идеи, предложения, библиотеки. ?@angular2 - где мы общаемся на темы, посвящённые Angular 2 и его экосистемы, включая TypeScript и NativeScript. ? Возможно, вам также будут интересны группы: @reactnative_ru, @ios_ru, @android_ru, @mobile_jobs, @devops_ru, @devops_jobs.

Ches
10.08.2016
12:30:03
а просто js чата нету?

Nikita
10.08.2016
13:49:26
это он и есть

Alex
10.08.2016
13:50:56
не, здесь есть jsx

Vladimir
10.08.2016
13:59:06
а просто js чата нету?
https://telegram.me/joinchat/Be4rsT5Rsgq30DHutjxXgA

Bogdan
10.08.2016
14:01:52
Народ, а это нормальная практика генерировать айдишники на клиенте?

Mikhail
10.08.2016
14:03:58
Народ, а это нормальная практика генерировать айдишники на клиенте?
Плохо, если изоморфное приложение как минимум

Алексей
10.08.2016
14:04:32
Народ, а это нормальная практика генерировать айдишники на клиенте?
совсем не нормальная практика - но в зависимости от ситуации так делать можно. Если это SPA ( и никто кроме самомго юзера доступ не имеет к данным ) И если данные разделены - perUser и только user может создавать и редактировать - тогда можно генерировать ID вида ID: userA-[id]

Denis
10.08.2016
14:09:31
Как вам такая головоломка? ) http://alf.nu/ReturnTrue

Bogdan
10.08.2016
14:09:56
совсем не нормальная практика - но в зависимости от ситуации так делать можно. Если это SPA ( и никто кроме самомго юзера доступ не имеет к данным ) И если данные разделены - perUser и только user может создавать и редактировать - тогда можно генерировать ID вида ID: userA-[id]
насчет разделенных данных и безоспасности можно подробней а то пока не могу понять в чем проблема. Для меня генерация айдишников на клиенте сильно упрощает механизм с оптимистическими обновлениями - я сразу диспатчу в стор и поскольку адишник не меняется достаточно всего лишь обновить объект а не удалить временные и добавить этот новый с новым айдишником.

Алексей
10.08.2016
14:13:39
насчет разделенных данных и безоспасности можно подробней а то пока не могу понять в чем проблема. Для меня генерация айдишников на клиенте сильно упрощает механизм с оптимистическими обновлениями - я сразу диспатчу в стор и поскольку адишник не меняется достаточно всего лишь обновить объект а не удалить временные и добавить этот новый с новым айдишником.
Два юзера одновременно создают запись в отдном и том-же документе - к примеру списко книг - каждый по одной книге - у каждого было 0 книг в списке - каждый создал ID - 1 теперь у нас появился конфликт который нужно мерджить вот мы и создали себе геморой на ровном месте То что вы хотите можно сделать вот как, создаете запись - ставите рандомный ID - временно - как только приходит ответ от сервера что запись создана то обычно в этом ответе отправляют ID созданной в базе даннных записи - берете этот ID и заменяете временный ID на реальный ID

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