
Алексей
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
кроме более приятного синтаксиса

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

Google

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

Алексей
09.08.2016
09:53:59

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

Ilya
09.08.2016
10:09:02
хмм

Алексей
09.08.2016
10:09:09
https://github.com/RamonGebben/noBind/blob/master/index.js#L10

from
09.08.2016
10:09:21

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

from
09.08.2016
10:11:33
соглашаюсь, что хрень какая-то

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

localvoid
09.08.2016
10:12:09

Alex
09.08.2016
10:12:15

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
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
так норм, но это не стандарт и возможно поломают такое поведение

from
09.08.2016
10:19:30

Алексей
09.08.2016
10:19:31

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

Andrey
09.08.2016
10:19:39

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
Вроде так не напрягает
Напрягает только что для списков приходится делать отдельный компонент/рендер функцию

from
09.08.2016
10:22:37

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
}?

Vlad
09.08.2016
11:44:23

⭐️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

⭐️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
Это же переменная

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
Верно