@react_js

Страница 376 из 5115
Алексей
09.08.2016
09:37:24
Konstantin
09.08.2016
09:39:45
https://medium.com/@dan_abramov/mixins-are-dead-long-live-higher-order-components-94a0d2f9e750#.2f07o3m4c

Алексей
09.08.2016
09:41:25
ну вот у меня собственно вопрос и остался - все перешли на hoc или еще есть люди пользуещиеся mixin’aми ?

Konstantin
09.08.2016
09:44:53
Ну есть react-mixin, для декораторов, нас устраивает

Google
Konstantin
09.08.2016
09:45:08
hoc это функциональщина

Ilya
09.08.2016
09:45:48
И чем это плохо?

Алексей
09.08.2016
09:46:16
И чем это плохо?
миксины? спроси Даню :)

Ilya
09.08.2016
09:46:24
Я не про миксины.

Я про фп

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

Konstantin
09.08.2016
09:47:39
Ну чем плох функциональный подход к сторам/компонентам? Наверное тем что ООП это не зря придумали

Ilya
09.08.2016
09:47:48
Мммм

Не понял вас.

Konstantin
09.08.2016
09:50:18
Ну нам дали es6 классы, а народ hoc прикручивает

Алексей
09.08.2016
09:50:49
Ну нам дали es6 классы, а народ hoc прикручивает
но es6 классы это ж просто сахар, так что нам по идее ничего не дали

кроме более приятного синтаксиса

Ilya
09.08.2016
09:53:01
>прикручивает

Google
Ilya
09.08.2016
09:53:38
А что там прикручивать?

Алексей
09.08.2016
09:53:59
но es6 классы это ж просто сахар, так что нам по идее ничего не дали
не совсем сахар - es6 классы имеют свое поведение и свои особенности - но да - они базируються на томже прототипном наследовании

Ilya
09.08.2016
09:54:44
Наверное, кому-то удобно работать с протипами, чем с обычной функцией.

Stepan
09.08.2016
09:56:43
Никогда не понимал концепции примесей. По сути это множественное наследование и с ним масса проблем. А компоненты более высокого уровня это простая композиция.

Andrey
09.08.2016
10:01:06
миксины ужасны, потом начинается треш с тем, что непонятно кто изменил значение и как получился такой результат)

Ilya
09.08.2016
10:07:21
https://github.com/RamonGebben/noBind в чем соль? А как же onClick={() => clickHandler()}

from
09.08.2016
10:08:42
https://github.com/RamonGebben/noBind в чем соль? А как же onClick={() => clickHandler()}
в том, что onClick={() => clickHandler()} создаёт новую функцию на каждый рендер

Ilya
09.08.2016
10:09:02
хмм

Алексей
09.08.2016
10:09:09
в том, что onClick={() => clickHandler()} создаёт новую функцию на каждый рендер
но его либа делает то же самое, возвращает каждый раз новую ф-цию)

https://github.com/RamonGebben/noBind/blob/master/index.js#L10

Алексей
09.08.2016
10:11:10
Что пфф, каждый раз когда вызывается ф-ция render, вызывается фунция noBind, которая что делает? Возвращает новую функцию при каждом вызове. Разве не так?

то же самое что и {(a) => a}

Ilya
09.08.2016
10:11:47
странно все это

localvoid
09.08.2016
10:12:09
странно все это
это жаваскрипт разработчики, ничего странного

Alex
09.08.2016
10:12:15
Немного странный способ =))
Ну да, ты вообще не должен html пихать. А раз пихаешь то должен отдавать себе отчет, ибо кейсы редкие.

Ilya
09.08.2016
10:12:24
писать какой-то невыгодный велосипед, который просто убирает .bind и замеяет его на обычную обертку

Google
Алексей
09.08.2016
10:12:58
может быть создавать новую фунцию дешевле, чем копировать оО

но чет звучит сомнительно:D

Ilya
09.08.2016
10:13:29
надо будет потом заняться этим вопросом

у меня как раз проект висит, где тьма event'ов, будет над чем поэксперементировать

localvoid
09.08.2016
10:15:00
event delegation никто не отменял

Andrey
09.08.2016
10:15:42
там не только в создании функции проблема, а еще и в том, что (() => {}) !== (() => {})

Алексей
09.08.2016
10:16:40
У него тож такая проблема будет, потому что каждый раз из нового скоупа функция возвращается, скорее всего и ссылка будет другая уже

from
09.08.2016
10:17:04
короче всё это обсуждали уже речь вот об этом https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-no-bind.md вот мнение, что это может привести к сильному падению производительности: https://medium.com/@esamatti/react-js-pure-render-performance-anti-pattern-fb88c101332f#.1itcqdnlx Можно не согласиться и проверить/измерить самому, будем рады ;)

Ilya
09.08.2016
10:17:33
спасибо

Dreamerinnoise
09.08.2016
10:17:55
https://github.com/RamonGebben/noBind в чем соль? А как же onClick={() => clickHandler()}
а я просто создаю функцию как член класса

increaseQty = () => this.increaseQty(); render() { <button onClick={this.increaseQty} className="button success">+</button> }

from
09.08.2016
10:19:20
а я просто создаю функцию как член класса
но её каким-то полюбившимся способом нужно привязать к контексту класса

Andrey
09.08.2016
10:19:24
так норм, но это не стандарт и возможно поломают такое поведение

Алексей
09.08.2016
10:19:31
а я просто создаю функцию как член класса
обычно это в конструкторе делают)

Dreamerinnoise
09.08.2016
10:19:37
у меня ts

from
09.08.2016
10:20:02
в том варианте уже привзяна
это и есть один из способов )

Алексей
09.08.2016
10:20:05
constructor() { this.handle = this.handle.bind(this); }

Konstantin
09.08.2016
10:20:37
class InputExample extends React.Component { state = { text: '' }; change = ev => this.setState({text: ev.target.value}); render() { let {text} = this.state; return (<input type="text" value={text} onChange={this.change} />); } }

Google
Konstantin
09.08.2016
10:20:52
Вроде так не напрягает

Напрягает только что для списков приходится делать отдельный компонент/рендер функцию

Stepan
09.08.2016
10:35:47
Насколько я понимаю, это имеет смысл только если используется https://facebook.github.io/react/docs/shallow-compare.html иначе разницы особой не будет.

Mikhail
09.08.2016
11:43:48
А какой плагин для postcss можно поставить чтобы можно писать как-то так: ? .className { height: 1em; width: @height }?

⭐️Alexandra
09.08.2016
11:44:28
google postcss vars

опередили

Жуки

Admin
ERROR: S client not available

Mikhail
09.08.2016
11:45:35
опередили
Да ничего, и тебе спасибо)

Тока перменные то норм, а вот как пример выше - не срабавает, компилится в @height

Хотя я подключаю дефолтово его

Может чо в сеттингс передать надо?

На гитхабе такого примера нету

⭐️Alexandra
09.08.2016
11:47:23
А вейт

Там же было не $var

А @var лел

Что это значит?

Mikhail
09.08.2016
11:48:33
?

Google
Brs
09.08.2016
11:49:46
Мишган, так как ты написал можно писать в стайлусе

Mikhail
09.08.2016
11:50:11
Ну так пусть будет @width

マイク
09.08.2016
11:50:24
Второй стайлус виден кстати?

Mikhail
09.08.2016
11:50:43
Мишган, так как ты написал можно писать в стайлусе
Пофиг что вначале: бакс или at. Но не комплится так)

⭐️Alexandra
09.08.2016
11:50:52
ЛОЛ

В смысле?

С баксом то как может не компилиться?

ЧТо за ошибка?

Brs
09.08.2016
11:51:26
Второй стайлус виден кстати?
Первый вроде, я перестал следить пока

Mikhail
09.08.2016
11:51:34
.className { height: 1em; width: $height }Undefined variable $height

マイク
09.08.2016
11:51:34
⭐️Alexandra
09.08.2016
11:51:45
.className { height: 1em; width: $height }Undefined variable $height
Ну так объяви сначала $height

Это же переменная

Brs
09.08.2016
11:51:52
ты не понела

⭐️Alexandra
09.08.2016
11:51:59
>Undefined variable $height

Что не поняла?

Тут четко написано все

Brs
09.08.2016
11:52:10
Мишган хотел, чтобы значение одного свойства пихнуть в другое

Mikhail
09.08.2016
11:52:14
ты не понела
Объясни им)

Brs
09.08.2016
11:52:15
а не переменные

⭐️Alexandra
09.08.2016
11:52:37
Типа повторить из этого же блока?

Mikhail
09.08.2016
11:52:46
Верно

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