@react_js

Страница 375 из 5115
Alex
08.08.2016
19:10:19
Alexander
08.08.2016
19:11:31
Ну так вроде бизнес требование – в любом случае проверять телефон

Хоть при отправке, хоть в реалтайме - всё равно база сольётся )

Google
Vitaly
08.08.2016
19:13:21
Спалить все телефоны в базе, норм ?
после 3й попытки вешать капчу, в любом случае можно слать реквесты не используя форму

Alex
08.08.2016
19:13:48
после 3й попытки вешать капчу, в любом случае можно слать реквесты не используя форму
слать реквесты не используя форму можно только на логин и пароль

и это огромное количество комбинаций.

Телефоны перебрать проще.

Evgeny
08.08.2016
19:16:38
Хуйню несёшь, кому нужно перебирать телефоны?

Alex
08.08.2016
19:17:29
Хуйню несёшь, кому нужно перебирать телефоны?
Получить телефон и подобрать пароль, например.

Получить базу для спама, вариант два.

Алексей
08.08.2016
19:17:45
сливаешь телефоны пользователей - посылаешь им спам - все пользователи уверенны что это ваш сервис виноват еще кучу способов для мохинаций и атак могу подкинуть

Evgeny
08.08.2016
19:18:00
Вы хуйню несёте, оба

Alex
08.08.2016
19:18:18
Вы хуйню несёте, оба
конеш, безопасность не нужна

ваще.

Алексей
08.08.2016
19:18:34
Вы хуйню несёте, оба
иди OWASP сайт почитай..

Alex
08.08.2016
19:18:47
иди OWASP сайт почитай..
да мы хуйню несем, чего стараться.

Google
Алексей
08.08.2016
19:19:45
да мы хуйню несем, чего стараться.
ну да :) чего это я.. пойду google, Yandex, Telegram и остальным скажу что они тоже фигней занимаються

Evgeny
08.08.2016
19:20:24
Телеграм мне не запрещает вводить любой номер

Alex
08.08.2016
19:20:43
Телеграм тебе говорит что номер уже занят?

Evgeny
08.08.2016
19:20:46
И все проверки на дос — на сервере

НУ ДА

Alex
08.08.2016
19:20:56
а дос непричем

Дмитрий
08.08.2016
19:21:18
Телеграм тебе говорит что номер уже занят?
"Извините, данный пароль уже занят"))

Alex
08.08.2016
19:21:27
юзером vasyapupkin

Timur
08.08.2016
19:21:38
ребята

есть вопрос

руакт и progressive web apps

реакт

как совместим ? как вы относитесь к PWA

Dmitriy
08.08.2016
19:22:24
да пусть сливают

"замучаются пыль глотать"?

Timur
08.08.2016
19:32:46
?

Dmitriy
08.08.2016
20:32:55
это к обсуждению слива базы номеров выше

Denis
08.08.2016
21:15:02
Парни, у нас сегодня родилась группа по Cycle.js - достаточная интересная вещь из мира FRP. Многие уже слышали. Кому интересно и кто активно использует, добро пожаловать: https://telegram.me/cyclejs_ru Ответственный за неё Александр @prinzc - все вопросы по модерации к нему. Также он большой эксперт по Cycle.js и может много что интересного рассказать. Enjoy! ??

from
08.08.2016
21:18:26
как будто стёб :) https://github.com/andrewngu/sound-redux/blob/master/scripts/containers/App.js#L32-L51

Владимир
08.08.2016
21:20:05
??

Google
Владимир
08.08.2016
21:20:10
в чем стеб ?

но у него нет роутера, поэтому нормальное решение что бы не тащить либу в проект

from
08.08.2016
21:20:56
в чем стеб ?
ну уж если так надо уточнить, то тут )) https://github.com/andrewngu/sound-redux/blob/master/scripts/containers/App.js#L36-L40

Владимир
08.08.2016
21:21:19
еще уточни, 2 разных компонента

from
08.08.2016
21:21:39
но у него нет роутера, поэтому нормальное решение что бы не тащить либу в проект
ну в коде бэкбоуна матчинг роутера что-то типа строчек 8 занимает )

Denis
08.08.2016
21:21:40
Чел просто не сделал over-engineering :)

from
08.08.2016
21:21:51
еще уточни, 2 разных компонента
а кто сказал, что не разные?

тоже конечно :( https://github.com/andrewngu/sound-redux/blob/master/scripts/actions/environment.js#L20 это к теме http://webaim.org/blog/user-agent-string-history/

или к этой скорее ) https://www.reddit.com/r/programming/comments/4vy1jo/even_jetbrains_can_write_stupid_code_or_why_a/

Bogdan
09.08.2016
07:02:32
Народ, подскажите пожалуйста, столкнулся тут проблемой написания древовидного списка на редаксе. Есть стейт с плоской структурой где поле children - содержит айдишники детей - {nodes: {1: {id: 1, title: 'title', ..., children: ['2','3','4']}}, ...} и есть компонент ноды с примерно такой разметкой class Node extends React.Component { render(){ var {node} = this.props; return ( <div className={style.node}> <div className={style.text}> {node.title} </div> <div className={style.children}> {node.children.map(nodeId=><Node key={nodeId} nodeId={nodeId}/>)} </div> </div> ) } } connect((state, props)=>{ return { node: state.nodes[props.nodeId] } })(Node)Все было хорошо пока не потребовалось отсортировать вложенные ноды по позиции (позиция хранится в ноде в виде поля position). Но в рендер-методе отсортировать не можем потому что поле children хранит только айдишники. 1) можно добавить в мап-стейт-ту-пропс вытаскивание чилдренов connect((state, props)=>{ var node = state.nodes[props.nodeId]; return { node, children: node.children.map(nodeId=>state.nodes[nodeId]).sort((a, b)=> a.position-b.position) } })(Node)но тогда мы получаем перерендер всех нод на каждое изменение стейта из-за того что map возвращает каждый раз новый массив. 2) использовать реселект смысла нет потому что из двух входящих аргументов node.children и state.nodes - выражение createSelector(node=>node.children,state=>state.nodes, (children, stateNodes)=>children.map(nodeId=>stateNodes[nodeId]).sort((a, b)=> a.position-b.position) все равно будет возвращать новый массив потому что будет перевычисление селектора из-за того что при изменении любой ноды в состоянии будет каждый раз новый объект state.nodes Ecть еще варианты?

Stepan
09.08.2016
07:11:02
Отсортировать в редьюсере?

Bogdan
09.08.2016
07:16:21
Получается это единственный вариант? Просто он слишком усложняет логику когда нужно следить за сортировкой при каждом изменении стейта. А если нужно будет добавить сортировку по другим полям? Прийдется делать какой-то пересчет или добавлять отдельное поле childrenByTitle - где адишники детей будут отсортированы по имени

Stepan
09.08.2016
07:29:44
Просто других вариантов с оптимизацией скорее всего нет, так как, если делать сортировку детей на стороне компонента, то компонент будет в любом случае зависеть от всех своих дочерних нод (он должен как-то определить порядок их рендеринга). Можно в редьюсере всё-таки подготовить какую-то часть данных. Например, заменить идшники детей на них самих, тогда перерендеринг будет только при изменении компонента или потомка, но не любой соседней ноды. Но, может, я чего-то и упустил.

Vladimir
09.08.2016
07:49:25
Можно сделать второй вариант с memoize

Кстати, еще кому-нибудь кроме меня кажется, что нормализованные сторы - зло?

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

Stepan
09.08.2016
07:56:33
Мне тоже кажется, что нормализация данных в клиентских сторах не нужна. Там данные должны храниться в виде, удобном для использования. А подготовка данных в компоненте не снимает проблему перерендеринга компонента при любом исменении подключенного к нему стейта. Если только использовать shouldComponentUpdate.

Vladimir
09.08.2016
07:56:53
> @Vogre Кстати, еще кому-нибудь кроме меня кажется, что нормализованные сторы - зло? если нормализация сделана на клиенте при помощи normalizr, то я плюсую ) я пока так и не понял профита, особенно когда нужна денормализация для отправки измененных данных на бекенд. По сути вопроса, может есть смысл в ноде делать проверку в shouldComponentUpdate, чтобы не перерендеривать каждый раз

Google
Alex
09.08.2016
07:57:32
Нормализация полезна только когда у моделек зависимости друг на дружку

Но если проект хоть сколько нибудь обещает быть большим то я бы заложился.

ибо в плохом сценарии может оказаться что модельки рассинхронизированы если стор не нормализован.

Вопрос критично это или нет зависит от конкретного кейса где произошла рассинхронизация.

Vladimir
09.08.2016
07:59:26
да, наверное все от конкретной ситуации зависит

Alex
09.08.2016
07:59:55
Все зависит от того насколько толстый у вас клиент, если вся вся логика на бэкенде, а фронт только рисует, то как правило смысла нет.

Bogdan
09.08.2016
08:02:38
если стор не нормализирован то чтобы обновить ноду где-то глубоко на 20-м уровне вложенности прийдется писать сложный редюсер которому надо вернуть стейт со всеми новыми объектами начиная с этой ноды и до начала вложенности

Admin
ERROR: S client not available

Vladimir
09.08.2016
08:05:34
при использовании например ImmutableJS это сделать легче используя setIn, mergeIn, mergeDeep и тп а вот денормализировать нормализированые данные, если бекенд ждет на сохранение такую-же структуру, какую он прислал, вот тут у меня возникали вопросы большие

Alex
09.08.2016
08:06:35
у меня просто был json-api, там отношения моделек по айди присваивались

т.е в "структуре" ты посылал только те филды что поменялись, а также если нужно было изменить модельки отношений то слал их айдишники

Vladimir
09.08.2016
08:08:15
ну, например бек по запросу модели выдает большой json, со множеством вложений, и после обновления данных в форме к примеру, нужно сохранить обновленную модель, и бек ждет такиеже данные, а не нормальизированые

Stepan
09.08.2016
08:12:00
По-моему, так как, нормализация нас не спасает от проблем, связанных с синхронизацией данных между клиентом и сервером, предотвращением утечки памяти (если всё сохранять и ничего не удалять, то рано или поздно на клиенте окажется вся серверная БД) и п.р. Поэтому одно только использование нормализации не даёт ничего. Можно делать такие редьюсеры которые создают пусть и ненормализованную, но корректную, эффективную и удорбную для использования структуру данных. Однако тут, конечно, всё зависит от конкретной ситуации.

Например, в случае дерева, совершенно не обязательно хранить его в виде списка нод с ИД шниками потомков. Можно построить настоящее дерево, при этом никакого дублирования данных не будет. Но, если, например приходится часто искать ноды этого дерева по ИД, то линейный список будет предпочтителен. А можно сохранить и то и другое, позаботившись о том, чтобы данные коррекно обрабатывались и изменялись редьюсерами в 2х местах.

Vladimir
09.08.2016
08:24:58
Alex
09.08.2016
09:13:46
Ребят

Ilya
09.08.2016
09:13:53
?

Alex
09.08.2016
09:13:54
в react как воткнуть script?

Google
Alex
09.08.2016
09:14:06
т.е. render() { return <div><script /></div> }

Ilya
09.08.2016
09:14:07
в каком смысле?

Alex
09.08.2016
09:14:37
ну если вот так воткнуть, то react его втыкает, но почему-то не грузит браузер его)

т.е. render() { return <div><script /></div> }

Ilya
09.08.2016
09:14:46
http://stackoverflow.com/questions/34424845/adding-script-tag-to-react-jsx

Alex
09.08.2016
09:14:48
т.е. даже в network пусто

Andrey
09.08.2016
09:15:05
dangerouslySetInnerHTML

Alex
09.08.2016
09:15:05
Ога, так и было изначально

другого способа нет?))

Ilya
09.08.2016
09:15:26
другого способа нет?))
ну вот выше попробуй, сказали

https://facebook.github.io/react/tips/dangerously-set-inner-html.html

Alex
09.08.2016
09:16:48
Немного странный способ =))

Но я понял, спс

Mikhail
09.08.2016
09:17:29
Нужен тип maybe для чекбокса, чтобы хранить в стейте indeterminate: типа и не true и не false, а так maybe

?

Konstantin
09.08.2016
09:18:08
другого способа нет?))
Просто аппендить скрипт в дом

Alex
09.08.2016
09:18:39
так и было =)

dangerouslyInnerHtml почему-то не пашет =)

Konstantin
09.08.2016
09:26:35
https://github.com/yariv/ReactScriptLoader

Алексей
09.08.2016
09:28:11
кто-то еще пользуеться миксинами?

Konstantin
09.08.2016
09:35:52

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