@react_js

Страница 306 из 5115
Dmitry
15.07.2016
09:04:43
const noop = function () {};
Ну noop это для примера ))

Mikhail
15.07.2016
09:05:04
Может быть тянет lodash, потому что где то в проекте используются еще импорты от него? Если нет, то можно и самому noop написать

const noop = () => {}; Прекрасный Javascript

сорри, он такой разный ☺

Google
Dmitry
15.07.2016
09:07:07
Я использую разные функции из него, но далеко не все. Вот и хочу обрезать их )

Bogdan
15.07.2016
09:19:57
про сет стейт https://medium.com/@mweststrate/3-reasons-why-i-stopped-using-react-setstate-ab73fc67a42e#.zd33q1lkv
такая проблема асинхронного стейта решается банальным образом - вместо setState({selection: value}) пишем this.state.selection = value; this.forceUpdate(); и дальше в этом же методе уже можно что-то чекать с новым состоянием

Bogdan
15.07.2016
09:21:05
почему?

Andrey
15.07.2016
09:21:40
lifecycle реакта ломается, как минимум

да и в статье и в доке есть про это )

NEVER mutate this.state

マイク
15.07.2016
09:26:01
`const noop = new Function`

Alexey
15.07.2016
09:26:22
new Function хитро ведет себя

в глобальном контексте функцию создает

хотя лучше конечно function noop() {}

тогда имя будет

Google
Alexey
15.07.2016
09:27:14
в стеке

Алексей
15.07.2016
09:27:23
есть же еще

Function.prototype

Bogdan
15.07.2016
09:32:46
lifecycle реакта ломается, как минимум
при this.forceUpdate() на самом компоненте не вызывается shouldComponentUpdate это да, но мне кажется проблема с этим небольшая потому что мы ведь в любом случае хотим чтобы он отрендерился. А вот что в доке говорят не мутировать то я этого не понимаю - сами придумывают проблемы с асинхронным состоянием и потом костыли для их решения. По хорошему вообще не нужно было придумывать никакого апи для хранения состояния - только пропсы и свободное хранения стейта где хочешь (например в виде this.property = value на компоненте) и для обновления разметки оставить единственный метод this.forceUpdate()

localvoid
15.07.2016
09:34:04
хорошо что есть люди, которые знают "как нужно, чтобы было по хорошему"

Vladimir
15.07.2016
09:34:25
Со стейтом реакт - вещь в себе. Можно делать компоненты любого уровня сложности, не юзая никаких стейт-менеджеров

localvoid
15.07.2016
09:35:12
в будущем в реакте будет нормальный планировщик, не создавайте себе проблем с forceUpdate

localvoid
15.07.2016
09:36:46
Где можно прочитать, про эти изменения?
https://www.facebook.com/notes/andy-street/react-native-scheduling/10153916310914590/

Brs
15.07.2016
09:43:11
эм, а если не устраивает логика работы стейта, для каких-то вещей, может не использовать его для них?

Vladimir
15.07.2016
09:43:22
при this.forceUpdate() на самом компоненте не вызывается shouldComponentUpdate это да, но мне кажется проблема с этим небольшая потому что мы ведь в любом случае хотим чтобы он отрендерился. А вот что в доке говорят не мутировать то я этого не понимаю - сами придумывают проблемы с асинхронным состоянием и потом костыли для их решения. По хорошему вообще не нужно было придумывать никакого апи для хранения состояния - только пропсы и свободное хранения стейта где хочешь (например в виде this.property = value на компоненте) и для обновления разметки оставить единственный метод this.forceUpdate()
Здесь еще такая опасность, в facebook могут выпустить новую версию react, абослютно молча сделав в нем state компонента read-only (как это сейчас с props, мы не можем просто сделать this.props.someVal = 123), и справедливо полагая, что это никому ничего не должно сломать. К тому же, если вам так уж не нравится state, вы можете без проблем использовать this.property; this.forceUpdate()

localvoid
15.07.2016
09:45:51
Где можно прочитать, про эти изменения?
https://facebook.github.io/react/contributing/design-principles.html#scheduling

Andrey
15.07.2016
09:55:57
Lupsick
15.07.2016
10:55:20
https://github.com/kriasoft/react-starter-kit/blob/master/src/components/Html.js я охуеваю с этого стартеркита ебаного

Andrey
15.07.2016
11:00:13
Kich
15.07.2016
11:01:20
О, наконец-то адекватный jsx в head’е, а не как это сделано в react-helmet :)

Bogdan
15.07.2016
11:16:53
Встретился тут с одним неочевидным моментом при работе с редаксом после часа дебага - никогда не передавать в пропсах что-то отличное от айдишников компонентам-контейнерам которые сами что-то берут из стора потому что из-за того что редакс оповещает всех подписчиков в порядке который может не совпадать в порядком того как отрендерится дерево компонентов (например какой-то вложенный компонент оповестится и отрендерится раньше чем его родитель) то в пропсах окажется старый объект и все сломается

Eugene
15.07.2016
11:43:05
А зачем подписывать вложенные компоненты? Или имеется в виду подписка на что-то другое?

Nikita
15.07.2016
11:59:09
Оптимизация)

Google
Bogdan
15.07.2016
12:11:09
А зачем подписывать вложенные компоненты? Или имеется в виду подписка на что-то другое?
Ну да оптимизация - ведь основная идея редакса - благодаря иммутабельности и shouldComponentUpdate мы рендерим только те компонента которые при в mapStateToProps выдали несовпадающие с предыдущим вызовом данные. Если хранить подписывать только компонены верхнего уровня то на каждое обновление будет проход рендера по всему приложению. А в случае с tree view где могут быть тысячи вложенных нод будут тормоза

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

Denis
15.07.2016
12:18:19
Привет всем. Ребят, подскажите, что не так в данной записи: constructor(props) { super(props); this.state = {open: false}; this.state = _getInitState(); }

Vadim
15.07.2016
12:18:53
все норм

1. ты прокидываешь props в super, но нигде props не используешь в constructor 2. _getInitState() может быть не определена 3. странно писать {open: false}, а потом переопределять state

Denis
15.07.2016
12:22:13
Props используется дальше по компоненту

Спасибо

Lupsick
15.07.2016
12:30:07
как лоадером загружать картинки из папки, которая не в src? Струтура: client …/src …/static сам вебпак работает в контексте /src а как в этом случае можно загрузить картинки из static?

Vasiliy
15.07.2016
12:38:24
как лоадером загружать картинки из папки, которая не в src? Струтура: client …/src …/static сам вебпак работает в контексте /src а как в этом случае можно загрузить картинки из static?
“в контексте” это в смысле context: path.resolve(__dirname, blahblah, ‘../src’) ? для лоадеров есть include/exclude, для настройки резолвинга eсть alias, вот крутой скринкаст по вебпаку https://learn.javascript.ru/webpack-screencast

Lupsick
15.07.2016
12:47:12
а что тут не нравится? как бы ты сделал?
я бы не юзал разный хтмл для серверной и клиенсткой части

Vasiliy
15.07.2016
12:49:23
разный хтмл? почему разный? т.е. где?

Lupsick
15.07.2016
12:50:30
разный хтмл? почему разный? т.е. где?
ща я решу с вебпаком и может объясню

пиздец рот ебал вебпака

Gordey
15.07.2016
12:51:56
чо случилось?)

Lupsick
15.07.2016
12:52:51
как вебпак инклуд проверяет?

относительно чего?

Vasiliy
15.07.2016
12:54:32
там можно абсолютные пути указывать, так проще ориентироваться в конфиге, имхо

Google
Gordey
15.07.2016
12:54:51
ты можешь через __dirname не париться

или прокидывать путь в конфиг

Lupsick
15.07.2016
12:58:36
вот только он не работает если ${__dirname}/../src

а есть regexp указывать то как он смотрит?

относительно context?

или относительно папки где запускается?

Vasiliy
15.07.2016
13:00:43
есть path: path.resolve, path.join, etc, чтобы быстро ориентироваться во всякой неведомой фигне для mac os x есть Dash и доксеты для этой неведомой фигни, для других ос тоже есть аналогичные штуки, для cli есть cheat и еще пара подобных штук

Admin
ERROR: S client not available

Lupsick
15.07.2016
13:54:55
короче спасибо пацаны я разобрался

и надо юзать path.resolve вместо __dirname

Roman
15.07.2016
14:39:48
MoscowJS 32 в офисе Яндекса 28 июля (будет трансляция): TypeScript-пакеты, тестирование, CI, интернет вещей и JavaScript — http://vk.cc/5o7CWA хоть в яндексе места довольно много, но лучше не тормозить и регистрироваться сразу и заранее, а то потом можно обломаться)

Vasiliy
15.07.2016
14:50:20
да, было бы круто, если бы им кто-нибудь подсказал про это (я там никого не знаю), реально сложно вкуривать быструю речь про всякие неведомые штуки, когда мало кислорода

Roman
15.07.2016
14:50:39
реквестируем в чатик организатора 32-ого MoscowJS

Ҫѐҏӗѫӑ
15.07.2016
16:29:33
https://twitter.com/chicoxyzzy/status/753989377722880001

Alxander
15.07.2016
16:59:29
Наканецта

Konstantin
15.07.2016
17:02:32
Сильно поможет если легаси браузеры ещё лет 5 останутся?

Nikita
15.07.2016
17:13:41
это v8. а значит в ноде они уже завтра будут)

Konstantin
15.07.2016
19:39:09
Google
Viacheslav
15.07.2016
21:41:38
https://hyperterm.org/

терминал на реакте!

Konstantin
15.07.2016
21:50:45
Вопрос, а зачем?

Viacheslav
15.07.2016
22:02:18
за тем же, зачем и atom

возможность гораздо проще внедряться и кастомизировать

https://github.com/zeit/hyperterm/issues/37#issuecomment-230342086

Lupsick
15.07.2016
22:09:46
https://github.com/peterramsing/lost

бля пацаны это пушка

マイク
16.07.2016
02:28:48
за тем же, зачем и atom
Закупаем плашки памяти, react-vt100 edition

Владимир
16.07.2016
02:58:46
Aleh
16.07.2016
13:37:20
но мне все равно электрон кажется тупиковой веткой. Хром слишком жирная махина, если бы заменить его на что-то лайтовое

ага, и конечно же это атомовское чудо сюда тоже завезли https://github.com/zeit/hyperpower

Vladimir
16.07.2016
13:41:14
Есть ещё black-screen

https://github.com/shockone/black-screen

Tony
16.07.2016
13:43:52
Emulator for the 21st century - в 21 веке давайте делать проги так, чтобы у пользователей все равно не хватало оперативки и все тормозило. А то навтыкают по 8гигов оперативки и корайпять обмажутся и думают что все летать будет

Для меня загадка - мощность пц растет, а венда все равно тормозит

Как так

Viacheslav
16.07.2016
14:00:56
Есть ещё black-screen
им я пользовался он какой-то не такой

Vladimir
16.07.2016
14:01:07
Да

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