
Danila
22.02.2017
11:56:05

Сергей
22.02.2017
11:56:21

Danila
22.02.2017
11:56:30

Google

Сергей
22.02.2017
11:56:39
описать надо компоненты, как их импортить и откуда

Котяй Негодяй
22.02.2017
11:56:43
То возможности генерации кода из прототипа очень-очень ограничены.
не совсем понял кейс
Ну, либо ты импортируешь один компонент из другого, либо ты его передаёшь в children.
И вот, система прототипирования усложнилась.
И сложность, по-моему, не очень явная.

Danila
22.02.2017
11:58:09
всё равно не сильно понял пример(

Сергей
22.02.2017
11:58:19
поэтому убрал в стол
есть множество вопросов, которые так просто не решить
а когда пишешь код, таких вопросов даже не возникает

Danila
22.02.2017
11:58:25
точнее, что значит «импортирую один компонент из другого»?

Сергей
22.02.2017
11:58:40

Котяй Негодяй
22.02.2017
11:58:45

Danila
22.02.2017
11:59:14

Сергей
22.02.2017
11:59:17

Котяй Негодяй
22.02.2017
11:59:44

Google

Danila
22.02.2017
11:59:51
ииии?
как children связан с импортом?

Сергей
22.02.2017
12:00:02
*facepalm*
чаще всего компонент это композиция других компонентов

Котяй Негодяй
22.02.2017
12:00:19
=)))

Ruslan
22.02.2017
12:00:31
есть вот такая штука http://theprotein.io/

Алексей
22.02.2017
12:00:39
ты не отрендеришь просто так сторонный компонент

Danila
22.02.2017
12:00:43
иии? передать что-то в компонент - это и есть children, нет?

Ruslan
22.02.2017
12:00:49
правда это не совсем тоже самое и не уверен, что рабочее

Котяй Негодяй
22.02.2017
12:01:17
Не в этом суть.

Danila
22.02.2017
12:01:46
не, ну просто мне и правда хочется понять этот кейс до конца

Stanislav
22.02.2017
12:02:05

Danila
22.02.2017
12:02:08
если тебе не сложно - просто покажи пример рендера в случае с import’ом. я вообще не понимаю, причём тут импорт и рендеринг

Сергей
22.02.2017
12:02:37

Котяй Негодяй
22.02.2017
12:02:41
Суть в том, что у нас уже 3 места, где мы что-то описываем: прототип, поведение, способы реализации зависимостей. Это будут вообще разные вещи.
А сейчас всё в одном месте.

Danila
22.02.2017
12:03:06

Котяй Негодяй
22.02.2017
12:03:17
Это более понятно. Более просто. Более читабельно.

Сергей
22.02.2017
12:03:23

Google

Danila
22.02.2017
12:03:54
ну камон, в чём сложность определить в каком файле какой компонент?

Сергей
22.02.2017
12:03:58
вооот
а если из сторонней библиотеки?
а если из кода в твоём приложении?

Котяй Негодяй
22.02.2017
12:04:08
Блин. =))
Если ты импортишь в этот компонент, это явная зависимость.
НЕ через children
Компонент С, например, явно зависит от A и B.

Сергей
22.02.2017
12:05:41
B рендерит в children A с пропсами
но НЕЯВНО, потому что ему C прокинул внутрь

Ruslan
22.02.2017
12:05:41

Котяй Негодяй
22.02.2017
12:05:46
А то, что ты передал А в B — это иньекция зависимости.
Иньекция в контексте А и Б.

Dmitry
22.02.2017
12:06:14
В общем для прототипирования есть сервисы, которые позволяют добавить роутинг и простую логику. А прототипы на реакте не нужны, потому что в итоге этот код юзаться не будет

Stanislav
22.02.2017
12:06:21

Сергей
22.02.2017
12:06:40

Ruslan
22.02.2017
12:07:10

Котяй Негодяй
22.02.2017
12:07:24
Я веду к тому, что такая "абстракция" только увеличит сложность.

Сергей
22.02.2017
12:07:43
разработчикам особенно

Danila
22.02.2017
12:07:54

Сергей
22.02.2017
12:08:31

Google

Котяй Негодяй
22.02.2017
12:08:36
Ох...

Сергей
22.02.2017
12:09:11
я когда реализовывал кодогенерацию для своей штуки офигевал от сложности по резолвингу зависимостей

Ruslan
22.02.2017
12:11:11
оно вроде еще в 2015 было, нет?
Но мне кажется, что они сейчас это пилят в Яндексе, т.к. двое точно перешли в Я, работать над архитектурой библиотеки компонентов

Котяй Негодяй
22.02.2017
12:11:59
Вот, в чём разница.
index.js
import A from './a';
import B from './b';
export default () => <A><B /></A>;
vs
index.js
import A from './a';
export default () => <A />;
a.js
import B from './b';
export default () => <B />;

Admin
ERROR: S client not available

Котяй Негодяй
22.02.2017
12:12:47
Первое — А не зависит от Б. Используется внедрение зависимости. Второе — А железно зависит от Б. Но визуально (в прототипе) это выглядит как одно и то же. А твоё описание способа реализации зависимости будет неявным, и там легко будет допустить ошибку. ЛИБО. Создавать много-много прототипов разных компонентов. И запутаться в прототипах.

Сергей
22.02.2017
12:14:52
ты это кому?

Котяй Негодяй
22.02.2017
12:15:23
Даниле. Долго писал. =)

Сергей
22.02.2017
12:17:46
жаль, что тг не подсказывает смайлы и стикеры по текстовым смайлам вроде :)

Котяй Негодяй
22.02.2017
12:18:19
Я не очень жалую такие фичи. =) Так что, мне норм. А то от них потом всё свистит-пердит.

Сергей
22.02.2017
12:18:45
я был бы рад, on/off такой фиче
Мне недавно понадобилась фигня одна
найти нигде не могу:
Нужны панели на реакте, панели вроде как в IDE, перемещать можно по экрану, в панелях что-то размещать, изменять размер
мб кто видел?

Котяй Негодяй
22.02.2017
12:22:12
Неа.
DIY?

Сергей
22.02.2017
12:22:39
я с трудом представляю как это реализовать на реакте ((
как хранить лэйаут

Google

Котяй Негодяй
22.02.2017
12:23:26
Ну, у тебя просто должна быть граница-кнопка, которю ты можешь таскать.

Сергей
22.02.2017
12:23:42
да это меньшая проблема ))))

Котяй Негодяй
22.02.2017
12:24:00
Ну а за ней ресайзятся все лейауты.

Сергей
22.02.2017
12:24:19
а как хранить это в стейте?

Алексей
22.02.2017
12:25:06
сделать веса по шкале x и y, и высчитывать размеры по весу. типа как flexbox

Котяй Негодяй
22.02.2017
12:25:22
Я бы сделал стейтфул компонент, общий. У него могут быть пропсы с конфигом, которые дублируются в своём стейте.
А потом создаём компонент ячейки и компонент "границы".
Алгоритм рассчёта положений и размеров всего и вся должен быть чисто математический.

Сергей
22.02.2017
12:27:04
я думал проценты выставить и всё

Котяй Негодяй
22.02.2017
12:27:37

Сергей
22.02.2017
12:27:54
просто не очень хочется переписывать
https://github.com/atom/atom/blob/master/src/pane.coffee

Котяй Негодяй
22.02.2017
12:27:57
Хотя тебе их, всё равно, придётся из координат кнопки высчитывать.

Сергей
22.02.2017
12:28:16

Danila
22.02.2017
12:28:47

Сергей
22.02.2017
12:29:05

Котяй Негодяй
22.02.2017
12:29:16