@react_js

Страница 1129 из 5115
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
ну, мне будет интересно посмотреть на это, но я в это не верю) я очень плотно работаю с интерфейсом, который надо кастомизировать и что я четко понял - не надо делать универсальный компонент, который можно кастомизировать и в хвост и в гриву, достаточно сделать много простых компонентов, которые реально просто переопределить написав заново.

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
Страсти то какие, как же они все ещё не сгорели с десктопными приложениями?) Распределение нагрузки по тредам - это наоборот облегчение для компьютера, потому что делать расчёты в том же потоке, в каком работать с UI - это прямой путь к тормозам
Распихивать расчёты по потокам имеет смысл, когда идёт сильная нагрузка на процессор и процессор имеет несколько ядер. Иначе скорее всего произойдёт лишь падение производительности. А десктопные приложения обычно выносят в отдельные потоки длительные, но не обязательно загружающие CPU операции, например операции с сетью. В случае JS это обычно не нужно из-за его асинхронной природы.

Единственное, что я могу придумать, что могло бы вызвать жуткую нужду в использовании потоков, так это если вам очень хочется порешать какое-нибудь уравнение типа Навье-Стокса в браузере. Единственный пример подобной штуки я видел в статье на хабре, где на 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
А я сам такие вещи делал, например. Криптография
Не факт, что криптография такая тяжёлая, что будет тормозить UI. Хотя это криптография на JS.

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
https://t.me/webpack_ru
Спасибо, я добрый, буду помогать))

Дмитрий
26.03.2017
20:31:50
Не факт, что криптография такая тяжёлая, что будет тормозить UI. Хотя это криптография на JS.
Результаты расчёта ключа для большинства известных big number библиотек - от 8 до 40 секунд. У меня - максимум две, а с воркерами дополнительно повышается отзывчивость интерфейса в этот момент.

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
Если в том компоненте у тебя есть разметка, то выбери второй вариант

Разбей на три компонента

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
Спасибо за хелпу в борьбе с "перфекционизмом"...

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 не помогает. Оу, не в курсе моды, спасибо гляну )

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