@react_js

Страница 5010 из 5115
Danila
15.10.2018
13:14:50
Подскажите, кстати, пожалуйста, вот редакс весит типа килобайт 10, но вроде как одним им не обойтись, мой любимый mobx 50, какие есть альтернативы для мобикса, чтобы просто на проксях и без бойлерплейта, ибо редукс сильно напрягает при прототипировании и эксперементировании в пет-проектах, а почему мобх весит в пять раз больше редукса я не понимаю

Andrey
15.10.2018
13:15:01
от транспайлинга до минификации
Погугли что такое rollup и статьи про него.

Nikolay
15.10.2018
13:15:05
react-konva всерьёз кто-то юзал? выглядит занятно

Google
Artem
15.10.2018
13:15:55
react-konva всерьёз кто-то юзал? выглядит занятно
выглядит да, но перфоманс будет с болью

Danila
15.10.2018
13:16:10
саги подойдут?
Они от редукса независимы?

Nikolay
15.10.2018
13:16:29
выглядит да, но перфоманс будет с болью
канвас сам по себе шустрый, а это ж тупо обвязка

Джон
15.10.2018
13:16:35
Artyom
15.10.2018
13:16:38
Шта?
ну в чем-то он прав

Artem
15.10.2018
13:16:53
почему?
лишняя абстракция, причем достаточно не простая, канвас это не интерфейс, можно и без реакта, реакт для другого

Danila
15.10.2018
13:16:56
Вопрос в чем?
В том, что сейчас есть ещё из сингл-стейт-либ чтобы просто, как в мобикс и весило мало, как редукс :)

Google
Artyom
15.10.2018
13:17:17
Шта?
Реактивный стм - это как раз модель + ее виртуальная копия в обсерваблах

Nikolay
15.10.2018
13:17:41
Artyom
15.10.2018
13:17:53
Тимофей
15.10.2018
13:17:59
Там сама либа большая даже без зависимостей
ну да. Я просто думаю в своей ui либе некоторые компоненты мигрировать на открытые, вот и ищу. И сильно удивился такой зависимости.

Artem
15.10.2018
13:18:05
Шта?
это не моя фраза если честно, но она мне крайне нравится)

Danila
15.10.2018
13:18:15
Effector
Ой, спасибо, но выглядит как пабсаб на стероидах

Попробую

Andrey
15.10.2018
13:18:45
Кстати, не помните что там мемчанский использовал для нахождения путей резолва обзерваблов?

Danila
15.10.2018
13:21:36
тоже норм
Угу, тоже посмотрю, что-то смотрел, показалось, что он не подходит для этого

Artyom
15.10.2018
13:22:40
Угу, тоже посмотрю, что-то смотрел, показалось, что он не подходит для этого
Вот пример, если что https://codesandbox.io/s/n3rn49jzz0 Посмотри, лучше, grammarly/focal

Danila
15.10.2018
13:22:43
И ещё тогда такой вопрос - какое отношение к preact/inferno у реактеров нынче? Использовать можно? При билде реакт заменять? 8кб, как-никак.

Artyom
15.10.2018
13:23:10
inferno, вроде как, помер уже. Преакт вполне живет

Danila
15.10.2018
13:23:16
Вот пример, если что https://codesandbox.io/s/n3rn49jzz0 Посмотри, лучше, grammarly/focal
Всё гляну. Мобикс зависимость вызывает, гад, своими @inject и @observable, кроме которых ничего и не нужно

Dmitry
15.10.2018
13:25:11
Ребят, подскажите по поводу передачи обработчиков. Сейчас многие пишут, что не стоит создавать анонимную функцию в рендере компонента. Окай, я передаю ссылку на функцию череp this, но если мне нужно передать какой-то параметр в обработчик, вот так ведь работать не будет: onClick={this.onSetSomething(id)} Всё сломается, т.к. у нас здесь вызов происходит сразу при рендере, а не при клике. А вот так работать будет: onClick={(id) => onSetSomething(id)} Так как правильно то передавать аргумент? Получается, в моём случае я делаю единственный верный вариант?

Constantine
15.10.2018
13:26:14
?

Vadim
15.10.2018
13:26:18
Google
Dmitry
15.10.2018
13:26:20
я делаю по старинке this.onSomething = this.onSmething.bind(this)

но вопрос в другом

Andrey
15.10.2018
13:26:35
onClick={this.setSomething} setSomething = e => {}

Anna
15.10.2018
13:26:55
ок. не думал что это будет воспринято как флуд. добро, извиняюсь.

Dmitry
15.10.2018
13:27:09
onClick={this.setSomething} setSomething = e => {}
не понял тебя, ты просто скопировал мой пример, но без аргументов и тела функции?

Danila
15.10.2018
13:27:10
onClick={(event) => onSetSomething(event, id)}
Вроде речь-то и шла о том, чтобы в рендере не создавать анонимов

Andrey
15.10.2018
13:27:19
в смысле метод как arrow function

и передаешь его в onClick без вызова

Andrey
15.10.2018
13:27:28
onClick={(event) => onSetSomething(event, id)}
Создай промежуточный компонент.

Danila
15.10.2018
13:27:30
там тоже функция всегда создается)
Но не в рендере же, а при вызове, не?

Джон
15.10.2018
13:27:36
Danila
15.10.2018
13:27:37
А, в рендере тоже, сорри

Dmitry
15.10.2018
13:27:54
по-другому не передать аргумент
видимо вот ответ, пасиб

Джон
15.10.2018
13:27:56
Danila
15.10.2018
13:28:03
(или преедать?)
Через стор ?

Andrey
15.10.2018
13:28:13
Danila
15.10.2018
13:28:14
Не, вроде, никак

Dmitry
15.10.2018
13:28:18
вот в этой статейе в самом конце примерчик интеерсный https://m.habr.com/company/ruvds/blog/426053/

Джон
15.10.2018
13:28:20
Через стор ?
но это уже совсем другая история )

Google
Dmitry
15.10.2018
13:28:25
опечатка на хабре? странно..

Psycho
15.10.2018
13:28:42
через .bind() можно передать аргумент

Dmitry
15.10.2018
13:28:49
{this.props.list.map(listItem => <li key={listItem.text}> <Button onClick={this.getClickHandler(listItem.text)} /> </li> )}

не понимаю как это может работать)

Dmitry
15.10.2018
13:29:31
ну через байнд понятно что будет работать

Джон
15.10.2018
13:29:34
тогда будет работать

Admin
ERROR: S client not available

Andrey
15.10.2018
13:29:51
Не, вроде, никак
class Foo { f = () => this.props.onClick(this.props.id); render() { return <Foo1 onClick=f /> } <Foo onClick={a} id={id} />

Джон
15.10.2018
13:29:55
потому что онклик ждет функцию аргументом

Andrey
15.10.2018
13:29:57
Кеширование на уровне реакта через промежуточный компонент.

Andrey
15.10.2018
13:30:50
Не оч понятно, в чём отличие
У тебя не пересоздаётся компонент при каждом вызове.

Dmitry
15.10.2018
13:30:54
какой в топку промежуточный компонент, что вы усложняее

Andrey
15.10.2018
13:31:02
Подумай.

Danila
15.10.2018
13:31:07
Dmitry
15.10.2018
13:31:10
вон сверху ответили, что метод должен функцию возвращать, тогда сработает

Andrey
15.10.2018
13:31:11
Danila
15.10.2018
13:31:11
Что вообще происходит

Google
Dmitry
15.10.2018
13:31:33
ну

Andrey
15.10.2018
13:31:35
вон сверху ответили, что метод должен функцию возвращать, тогда сработает
У тебя при каждом рендере будет новая функция. А у меня нет.

Danila
15.10.2018
13:31:37
Но оно так или иначе создаст функцию

Andrey
15.10.2018
13:32:07
Но оно так или иначе создаст функцию
А теперь посмотри что будет при втором рендере, если функция и id не изменились.

Danila
15.10.2018
13:32:27
onSomething(id){ return event => {//effect(event, id)}} <div onClick={this.onSomething(id)}></div>

Danila
15.10.2018
13:32:32
Ето что касается каррирования

Andrey
15.10.2018
13:32:48
можешь заспойлерить?
Компонент не будет перерендериваться так как пропсы не изменились.

Andrew
15.10.2018
13:33:02
() => {} !== () => {}

Danila
15.10.2018
13:33:46
Компонент не будет перерендериваться так как пропсы не изменились.
Сложна. Всё равно не оч ясно, ну вот маплю я массив, вывожу список из 20 дивов, каждый при клике должен в обработчик передать свой ид

Alexander
15.10.2018
13:33:54
() => {} !== () => {}
ну да) логично

Dmitry
15.10.2018
13:37:23
хок - антипаттерн)

Danila
15.10.2018
13:37:39
Познакомить с понятием хок?)
Было б норм, потому что в доках нифига не понятно и выглядит как усложнение, но не буду :)

Andrew
15.10.2018
13:38:09
всем похера на () =>

ну будет лишний ререндер

тут все уже на рендер пропах и тд

хотя они конечно не в циклах

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