@react_js

Страница 825 из 5115
Valentin
15.01.2017
01:13:06
Посмотри на пример, там все понятно. DefinePlugin используешь?

blkmrkt
15.01.2017
01:13:25
кстати что у нас в 2017 со стейт-менеджментом, может новый велосипед изобрели?

Cocker
15.01.2017
01:14:56
Посмотри на пример, там все понятно. DefinePlugin используешь?
ну до этого не использовал, сейчас начал рыться, вставил в конфиг вот это new webpack.DefinePlugin({ 'process.env': { 'NODE_ENV': JSON.stringify('production') } }), но не понял пока, оно работает вообще или нет

Google
Andrew
15.01.2017
02:10:38
Подскажите решение: есть b2b интернет-магазин на Реакте с mobx, и там есть корзина, которая начинает тормозить при овер 500 продуктах в ней. Тормозит от того, что там куча running totals: net weight, price, pallets, customs fees итд., которые пересчитываются каждый раз при изменении корзины. С чего начинать оптимизировать это? Хранить totals отдельно и менять их при каждом действии с корзиной? Если да, то как можно хукнуть изменения объекта в стейте mobx? В redux есть middleware, а как тут быть?
по идее то что не изменилось не нужно бы пересчитывать, например если добавляется элемент, просто к прежней сумме его добавить, не считать сумму полностью, если компонент удалили из орзины - тупо вычесть из суммы. если поменяли количество, вычесть прежнее значение, добавить новое. это очень легкие операции.

redux
он самый

Denis
15.01.2017
03:02:33
Кто юзал https://github.com/alibaba/rax ? :) Он реально 100% совместим и быстрей?

localvoid
15.01.2017
03:08:52
его замечательный бэнчмарк показывает насколько его либа быстрее чем реакт в дев моде

Denis
15.01.2017
03:25:13
Как я понял разница глобальная лишь в синхронном setState

localvoid
15.01.2017
03:27:14
вся разница в мелких деталях, о которых многие разработчики даже не догадываются :) например не вижу там нормализации с неявными префиксами для ключей, хотя смотрел исходники бегло, качество кода достаточно низкое.

Mikhail
15.01.2017
03:44:19
основной плюс rax в встроенном рендерере в weex (https://weex-project.io, очень популярная штука в Китае). А так он не быстрее, результаты нормального бенчмарка (https://github.com/taobaofed/server-side-rendering-comparison/pull/5) примерно одинаковы

Bogdan
15.01.2017
07:32:49
кто юзает sublime text 3? Как там отключить проверку всяких обновлений при старте, чтобы не было тормозов?

blkmrkt
15.01.2017
08:18:30
посмотри, не меняется ли state в процессе пересчёта. выглядит так, словно в цикле пересчёта или по каждому полю идут вызовы this.setState, вместо одного вызова в конце.
У меня mobx, и самая дорогая ф-я тут это @computed которая считает суммы. Это мемоизация из коробки, так что она будет срабатывать всегда когда корзина меняется. Нужно делать как сказали выше - вручную хранить все эти счетчики и добавлять-вычитать когда нужно.

Vladimir
15.01.2017
08:30:28
Например - повесить reaction на изменение корзины и в нём уже смотреть как изменилась и как обновить счетчики

Google
blkmrkt
15.01.2017
08:35:14
Я, кстати, сомневаюсь, что пробежка по 500 элементам массива может нагрузить фронт
там не сама пробежка прожорливая, а то что она делает с товаром в корзине: подсчет НДС, валюты, веса, всего наверное 15 разных параметров

Vladimir
15.01.2017
08:37:05
Ааа, тогда возможно

У меня computed - получение объектов по их idшникам из общего стора объектов

blkmrkt
15.01.2017
08:37:49
плюс вдобавок к этому она еще считает subtotals для каждой категории товара

Vladimir
15.01.2017
08:38:27
Ну в таком случае, конечно, лучше разбить на обсерваблы и их изменять в реакции

Igor
15.01.2017
09:23:44
Коллеги, а есть опыт частичного применения react, то есть страница уже готовая. Мне без глобального стора, нужно вставить пару виджетов в конкретные места. Это нормально работает?

Vladimir
15.01.2017
09:23:59
Да

Igor
15.01.2017
09:24:12
Или например заменить все классы .div_react на реакт-компоненты.

Vladimir
15.01.2017
09:24:43
Зачем? Просто сделайте рендер в определенный див

Igor
15.01.2017
09:24:57
Понял, оки.

Оправдано ли тогда применение preact/inferno?

Vladimir
15.01.2017
09:26:21
Ну, как сказать, если 50кб для вас много-тогда оправдано

Igor
15.01.2017
09:27:46
Понял, вообще интресно было inferno пощупать =)

pofigizm
15.01.2017
12:30:27
В продолжении оптимизации размера бандла: yarn install && webpack // bundle.js === 940 kb (min) ... npm install && webpack // bunble.js === 807 kb (min) вообщем картина такая: immutable: ^3.8.1 draft-js: свой форк, └── immutable: ~3.7.4 draft-js-plugins-editor: 2.0.0-beta1 ├── immutable: ^3.8.1 └── draft-js: >=0.9.1 └── immutable: ~3.7.4 c yarn я получаю 2 draft-js и 3 immutable c npm я получаю 1 draft-js и 2 immutable вот так, заглядывайте внутрь ваших бандлов ))

Nikita
15.01.2017
13:06:48
а dedupe plugin это не устраняет?

pofigizm
15.01.2017
13:07:38
нет

Vasiliy
15.01.2017
13:38:05
что думаете про redux-orm?

я видел уже поднималась эта тема в чатике, но ничего конкретного не вычитал из диалогов кто-нибудь использует? как сама идея и ощущения? (: спрашиваю потому что читаю сейчас вот это http://blog.isquaredsoftware.com/series/practical-redux/

Google
Дмитрий
15.01.2017
13:53:39
При большом стейте начинает быть очень выгодным

Но не понятно что у него с производительностью, в том плане что неправильная организация этих моделей может больно бить по реакту

А в код пока лезть времени не было

Но думаю должно быть ок)

Vasiliy
15.01.2017
13:54:48
я просто открыл код и на первый взгляд все очень даже ок, но тоже толком не вникал я думаю многие пишут сами эти абстракции, кому нужно, а тут вроде как из коробки все работает, мб не совсем в том виде, в котором я это себе представлял, но стоит внимания

Дмитрий
15.01.2017
13:58:14
У меня у самого кажется скоро свой орм будел, лол)

Name
15.01.2017
14:53:02
export varname https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export

ты пытаешься экспортировать приконекченный компонент без имени оставь export default для этого компонента, как на первом скриншоте, а остальные экспортируй как обычно

Sergey
15.01.2017
14:57:20
ну вроде да

? ethorz
15.01.2017
14:58:58
export let a = 1;

потом просто import connect, {a} from "./"

Kate
15.01.2017
16:43:01
а чего может не запускаться проект?

Kate
15.01.2017
16:43:10
я такой модуль что-то нагуглить не могу

вчера все ок было

Danil
15.01.2017
16:45:42
Почему после root стоит ; ?

В reactdom render

Kate
15.01.2017
16:47:35
нет, дело не в ней

Dreamerinnoise
15.01.2017
16:48:03
Ну смотри, что добавляла

Danil
15.01.2017
16:48:05
Ну её там точно быть не должно

Kate
15.01.2017
16:49:49
я убрала, но нагуглила что-то с метеором, сейчас пробую, не знаю что такое метеор

Google
Kate
15.01.2017
16:49:53
https://github.com/meteor/meteor/issues/8056

но ошибка такая же

Dreamerinnoise
15.01.2017
16:50:23
но ошибка такая же
https://github.com/meteor/meteor/issues/8056#issuecomment-260662403

Admin
ERROR: S client not available

Lupsick
15.01.2017
17:29:51
ты используешь create-react-app?

Azein
15.01.2017
17:57:46
что думаете про redux-orm?
Я помогал немног Марку с этой статьей. Вообще, мне идея показалась интересной, но конкретно редакс-орм дает такую нехилую доп.сложность абстракции. Не стал у себя использовать, не настолько сложная работа с данными.

Я думаю, может подойти в случаях, когда какой-нибудь graphql не охота/времязатратно, а инструментарий такой нужен в клиенте.

Alexander
15.01.2017
17:59:13
Нет https://g.co/kgs/rD5OtU

pofigizm
15.01.2017
18:21:19
И эта хрень без отказа от yarn не решается никак?
пока не думал как нормально решить, но по быстрому так захачил "postinstall": "rm -rf node_modules/draft-js/node_modules/immutable && rm -rf node_modules/draft-js-plugins-editor/node_modules/draft-js && rm -rf node_modules/draft-js-plugins-editor/node_modules/immutable",

pofigizm
15.01.2017
18:22:45
версии наверно

pofigizm
15.01.2017
18:23:47
хотя может это dedupe в webpack 2 не правильно работает

Таймураз
15.01.2017
18:25:16
pofigizm
15.01.2017
18:26:28
может завтра попробую. там конфиг надо переписывать.

Таймураз
15.01.2017
18:30:48
может завтра попробую. там конфиг надо переписывать.
Если соберешься- отпишешься? Буду благодарен)

Google
pofigizm
15.01.2017
18:38:11
Есть объяснение почему такая разница?
я ж написал c yarn я получаю 2 draft-js и 3 immutable c npm я получаю 1 draft-js и 2 immutable причина - разные версии пакетов, но они по разному обрабатывают

Dmitry
15.01.2017
18:40:07
А как нпм ставит 1 версию draft js, если в форке что-то по другому работает?

Kate
15.01.2017
18:40:16
ты используешь create-react-app?
да) уже решила) переустановила file loader)

Alexander
15.01.2017
18:54:35
может кто знает почему ругается на такую запись: class ProfileForm extends Component { state = { user: '' }; Module build failed: SyntaxError: Unexpected token (6:8) 4 | 5 | class ProfileForm extends Component { > 6 | state = { user: '' }; | ^

Azein
15.01.2017
18:59:38
constructor(){ super() this.state = {} } - вот так сойдет

Alexander
15.01.2017
19:00:44
c констрактор понятно

почему без него не взлетает?

Alexander
15.01.2017
19:03:39
спасибо

Cocker
15.01.2017
20:16:03
Народ, вопрос такой: когда юзеру надо сменить пароль, он по идее его вводит два раза: пароль и подтверждение пароля, чтобы быть более уверенным, что он знает, что вводит. На фронтенде валидируем, что пароль подходит по правилам и что оба пароля одинаковые, и только после этого посылаем на бекенд. Теперь вопрос: надо ли на бекенд посылать оба пароля, или только один?

Таймураз
15.01.2017
20:16:28
Один

Cocker
15.01.2017
20:18:23
А повторную валидацию пароля надо на бекенде делать?

И шифруете на бекенде или на фронтенде?

Dmitrii
15.01.2017
20:21:57
зависит от логики, если требуется то можете посылать два пароля и валидировать на бэкенде тоже. Шифтровать на бэкенде

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