
Artur
26.03.2017
18:42:46
ну так в том-то и дело, что их все описывать не выйдет

Nikita
26.03.2017
18:42:59
а, уже не выйдет?)

Artur
26.03.2017
18:42:59
а иногда нужны какие-то точечные кастомизации

Nikita
26.03.2017
18:43:04
а что тогда выйдет описать?

Google

Artur
26.03.2017
18:43:09
потому что это делать нужно иначе)
не создателю компонента предоставлять ручки для этого
иначе описывать 200 свойств реально сдохнешь
а предоставлять такой интерфейс каким-то другим образом)) ну и есть мысли, каким
и здесь типизация и интерфейсы очень кстати

Nikita
26.03.2017
18:44:15
и опять говорю - это миф
у тебя есть компонент, есть его внутренее устройство - верстка, стили
если ты описываешь, как его поменять, ты должен его внутреннюю логику выставить наружу

Artur
26.03.2017
18:45:36
не очень понял, как это связано с мифами

Nikita
26.03.2017
18:45:57
ну как не нужно
вот у тебя етсь такой инпут

Google

Nikita
26.03.2017
18:47:30
тебе надо выставить наружу интерфейс, как кастомизировать сам инпут, как кастомизировать аддон
а если какой-то умник сделает addon {width: 0; height:0}, он сломает компонент. интерфейс не должен такого позволять, jss этой проблемы не решит. а раз не решит - зачем мучаться?)

Artur
26.03.2017
18:50:17
чтобы флоу сказал тебе, что ты осел и так делать не надо
и подсказал тебе, что делать можно

Nikita
26.03.2017
18:52:47
ну, мне будет интересно посмотреть на это, но я в это не верю)
я очень плотно работаю с интерфейсом, который надо кастомизировать и что я четко понял - не надо делать универсальный компонент, который можно кастомизировать и в хвост и в гриву, достаточно сделать много простых компонентов, которые реально просто переопределить написав заново.

Artur
26.03.2017
18:54:06

Nikita
26.03.2017
18:54:35
бэм никак не решает моих проблем, к сожалению)

Artur
26.03.2017
18:54:55
в каком плане? интерфейс раскладывается на элементы и модификаторы
с твоим примером можно это очень легко делается и кастомизируется. просто говорю - интерфейс сам по себе не защищенный и не слишком удобный

Nikita
26.03.2017
18:56:10
ну а как ты запретишь переопределять display свойство?

Artur
26.03.2017
18:57:08
если есть типизация (тайпскрипт, флоу), то это можно сделать
декларируя интерфейсы примитивов
блин, надо показывать))
на словах сложно пояснить

Nikita
26.03.2017
18:58:17
и тут вариант, либо делать DSL, аннотации @override (привет java), либо писать ручками 200 полей каждый раз

Artur
26.03.2017
18:59:00
почему? у тебя может быть какой-то переиспользуемый тип, в котором есть whitelist/blacklist, например

Nikita
26.03.2017
18:59:42
потому что от компонента меняется whitelist/blacklist, например

Artur
26.03.2017
19:00:33
не сильно, те проблемы, что ты перечисляешь - это общие проблемы. да и как бы дифф есть

Google

Nikita
26.03.2017
19:01:32
ок, будет интересно увидеть твой проект)

Artur
26.03.2017
19:02:33
суть в том, что мне хотелось бы знать, что какой-то StyledComponent предоставляет мне возможность изменять свойство color у кнопки primary, когда она hovered
и не хочется при этом, создавая этот компонент, тратить много времени на это
ну и кажется, что это возможно)
но это план максимум, поэтому и сказал, что здорово, когда есть типизация, потому что она потенциально может это дать) и декларировать стили можно так же, как и пропсы, например
а сейчас пока основная работа вокруг того, чтобы хотя бы возможность такой кастомизации была удобной для всех)

Roman
26.03.2017
19:48:16
привет всем, кто-нибудь пользовался https://github.com/treycordova/nativejsx ?

Алексей
26.03.2017
19:57:01
Единственное, что я могу придумать, что могло бы вызвать жуткую нужду в использовании потоков, так это если вам очень хочется порешать какое-нибудь уравнение типа Навье-Стокса в браузере. Единственный пример подобной штуки я видел в статье на хабре, где на JS писался рей-трейсер.


Дмитрий
26.03.2017
20:07:37
http://web-perf.github.io/react-worker-dom/
Тащемта, проще своими глазами убедиться

Aslan
26.03.2017
20:14:07
А есть какие нибудь замеры производительности?

Алексей
26.03.2017
20:16:37
Бенчмарк DBMonster с воркерами не запустился в фаерфоксе, в хроме наблюдается повышение производительности аж на 1-2 ФПС!!! Охренеть ускорение.

Aslan
26.03.2017
20:16:50
А, есть вроде че то

Алексей
26.03.2017
20:20:57

Marlik
26.03.2017
20:22:29
Народ, подскажите по webpack'у делаю import скрипта в главный app.js, скрипт не отрабатывает, может есть какие-то нюансы что в скрипте прописывать, функцию или что?

MadMax
26.03.2017
20:26:36
https://t.me/webpack_ru
Только там все злые сидят
и не помогают))

Marlik
26.03.2017
20:27:05

Aslan
26.03.2017
20:31:31

Дмитрий
26.03.2017
20:31:50

Google

Дмитрий
26.03.2017
20:33:48
Для иллюстрации - валидация результата - это сравнение числа с 2 в степени 2048 - 64, это 496 разрядов

Andrey
26.03.2017
21:25:55
Ребят, а норм использовать контейнеры внутри компонентов?

Denis
26.03.2017
21:30:23
Да
Если такой компонент один
Например компонент content и в нем контейнер githubRepos

Dmitry
26.03.2017
21:33:08
Я бы сказал, что такой компонент будет контейнером уже тоже

Denis
26.03.2017
21:33:45
Если чайлдом
То всё ок

Admin
ERROR: S client not available

Dmitry
26.03.2017
21:34:22
Думаю все же Андрей про импорт контейнера внутри файла компонента

Denis
26.03.2017
21:34:28
Иначе хок какой-то

Aslan
26.03.2017
21:34:40
Ну это может быть и просто компонент Layout
например. не контейнер

Andrey
26.03.2017
21:34:54
Да
Думаю все же Андрей про импорт контейнера внутри файла компонента

Dmitry
26.03.2017
21:35:40
Компоненты - глупые и не знают ни о какой бизнес логике. Контейнеры - знают. Если ты импортишь контейнер в компонент, то внезапно он становится завязанным на бизнес логику.

Andrey
26.03.2017
21:37:55
Ну сейчас у меня два варианта решения этой проблемы:
либо создать один контейнер, который будет пропсами прокидывать данные в свои компоненты
или создать компонент, который в body будет принимать (в моем случае) контейнеры
Какой из них лучше, или есть еще какие-то?

Nikita
26.03.2017
21:40:28
делай как удобно =)

Aslan
26.03.2017
21:40:50
Но кому то же их все равно придется передавать

Google

Andrey
26.03.2017
21:40:52

Aslan
26.03.2017
21:40:57
Во втором случае

Andrey
26.03.2017
21:41:21

Nikita
26.03.2017
21:42:16
А best-practice?)
тебе ехать, или шашечки?)
в реальном проекте понятия контейнеров и обычных компонентов пропадают. есть UI-компоненты (инпут, кнопка, список юзеров) и просто компоненты

Aslan
26.03.2017
21:43:16
Если в том компоненте у тебя есть разметка, то выбери второй вариант
Разбей на три компонента

Andrey
26.03.2017
21:43:35

Aslan
26.03.2017
21:44:13
. сверху еще один контейнер, который передаст контейнеры через чилдрен

Nikita
26.03.2017
21:44:35
если будет легче - оберни компонент в connect()(Component), чтоб было)

Aslan
26.03.2017
21:45:12
Ну как ты говорил во втором случае. Это как вариант
Или забей

Andrey
26.03.2017
21:45:38
Видимо, проще забить

Nataliya
26.03.2017
21:46:02
Привет! Может кто пытался прикрутить eslint airbnb в create-react-app? что-то не хочет нормально работать. в консоли не кидает ошибки, в vs code вроде норм, но с импортами беда

Andrey
26.03.2017
21:49:46
Спасибо за хелпу в борьбе с "перфекционизмом"...

from
26.03.2017
22:00:08

Denis
26.03.2017
22:04:29

Nataliya
26.03.2017
22:08:36
Ребят, а причем тут package.json если для конфига используют eslintrc? Ну в общем кажется нашла ответ на свой вопрос тут https://github.com/facebookincubator/create-react-app/issues/1355 блин, странная концепция не линтить стиль кода

code4aman
26.03.2017
22:10:57
можно и в package.json описать правила, eslintConfig вроде ключ должен быть тогда
prettier в моде ж

Nataliya
26.03.2017
22:12:39
пробовала "extends": ["airbnb"] в package не помогает. Оу, не в курсе моды, спасибо гляну )