These are chat archives for dev-ua/reactjs

5th
Jan 2016
Sergey Rubanov
@chicoxyzzy
Jan 05 2016 00:00
он умеет в том числе commonjs
Alexey Podskrebyshev
@alexpods
Jan 05 2016 00:16
@chicoxyzzy systemjs имеет внутренний формат описания модулей. Может @batazor имел в виду чем один формат лучше другого.
Vladyslav Siriniok
@siriniok
Jan 05 2016 01:08
This message was deleted
Sergey Rubanov
@chicoxyzzy
Jan 05 2016 03:12
ну любой бандлер имеет свой формат описания модулей
Alexey Podskrebyshev
@alexpods
Jan 05 2016 06:54
не в любой формат можно транспилить es6 модули всеми существующими транспайлерами (babel, typescript, traceur). Да и этот формат не такой уж "внутренний" для system.js (amd, commonjs модули в него не переводятся, а остаются в первоначальном виде). Ну и system.js сам по себе не бандлер, а чисто модуль-лоудер - полифил к первоначальному стандарту загрузчика, который был выпилен из es6 + возможность подгружать модули различных форматов. Бандлер выделен в отдельную библиотеку (https://github.com/systemjs/builder).
А вообще я наверное пытался найти смысл там, где его не стоило искать. @batazor наверное действительно говорил о system.js как о модуль-лоудере.
Kirill Salykin
@kirillsalykin
Jan 05 2016 07:30

доброе время суток,
подскажите пожалуйста пример реального (используемого, а не поиграться) реакт приложения которое взаимодействует с сервером (особо интересует валидация, клиент + сервер).

Ну и поделитесь плз бест практиками :)

Заранее спасибо!

Victor Login
@batazor
Jan 05 2016 11:13
@alexpods @chicoxyzzy Спасибо за разъяснение. Теперь стало понятней зачем он нужен.
Sergey Rubanov
@chicoxyzzy
Jan 05 2016 12:57
ну так-то и вебпак можно юзать как модуль лодер. а так все верно, да
Terry Sahaidak
@terrysahaidak
Jan 05 2016 14:27
@kirillsalykin sound-redux пошукай на гітхабі
Roman Pominov
@rpominov
Jan 05 2016 22:19
кто-нибудь разбирается в Flow+classes+babel? Не могу заставить babel обрабоать код с классом, в котором type defenition поля есть:
SyntaxError: src/fantasy.js: Missing class properties transform.
   6 | export class Stream<T> {
   7 | 
>  8 |   observe: BasicStream<T>;
     |   ^
   9 | 
  10 |   constructor( basicStream:BasicStream<T> ) {
  11 |     this.observe = basicStream
плагины такие:
{
  "plugins": [
    "transform-es2015-template-literals",
    "transform-es2015-literals",
    "transform-es2015-function-name",
    "transform-es2015-arrow-functions",
    "transform-es2015-block-scoped-functions",
    "transform-es2015-shorthand-properties",
    "transform-es2015-computed-properties",
    "transform-es2015-for-of",
    "check-es2015-constants",
    "transform-es2015-spread",
    "transform-es2015-parameters",
    "transform-es2015-destructuring",
    "transform-es2015-block-scoping",
    "transform-es2015-modules-commonjs",
    "syntax-flow",
    "transform-flow-strip-types",
    "transform-object-rest-spread",
    "transform-es2015-classes",
    "syntax-class-properties",
    "transform-class-properties"
  ]
}
Flow нормально код обрабатывает, а babel не хочет.
Kirill Yakovenko
@blia
Jan 05 2016 22:22
а class-properties без флоу работает?
Roman Pominov
@rpominov
Jan 05 2016 22:24
да я и не пользуюсь этим, там только простые методы в классе. Поставил последние два плагина только потому что в ошибке что-то похожее написано.
а что class-properties должен по нормальному делать? как проверить работает ли он? (я внезапно первый раз сейчас классы использую, как-то удавалось их обходить стороной)
хм, не работает, да:
SyntaxError: src/fantasy.js: Missing class properties transform.
   6 | export class Stream<T> {
   7 | 
>  8 |   foo = 42;
     |   ^
   9 | 
  10 |   // observe: BasicStream<T>;
  11 |
Ivan Kurnosov
@zerkms
Jan 05 2016 22:33
@rpominov потому что static же
Roman Pominov
@rpominov
Jan 05 2016 22:33
воу, нужно было пересортировать последние 3 плагина в списке :anguished:
Ivan Kurnosov
@zerkms
Jan 05 2016 22:33
а, это не жс
Kirill Yakovenko
@blia
Jan 05 2016 22:33
обходи! :)
observe: BasicStream<T>;
это выглядит как проп класса и ; в конце
Roman Pominov
@rpominov
Jan 05 2016 22:34
это js + Flow
конкретно observe: BasicStream<T>; — flow аннотация что у инстансов будет поле observe такого-то типа
Kirill Yakovenko
@blia
Jan 05 2016 22:35
мы сегодня выяснили, что "syntax-*" не нужно вообще указывать. Их тянут трансформы
Roman Pominov
@rpominov
Jan 05 2016 22:36
а, круто. да работает без syntax
Kirill Yakovenko
@blia
Jan 05 2016 22:36
Но у JS классов же нет полей. ну да ладно. Если проблема решена. Я просто не пользуюсь пропсами у классов - и ничего не знаю на самом деле :)
Roman Pominov
@rpominov
Jan 05 2016 22:37
я вообще хз правильно ли термин "поле" употребляю :smile:
сам в этой ООП терминологии не понимаю ничего
Kirill Yakovenko
@blia
Jan 05 2016 22:38

а, это не жс

чо, жс + флоу(тайпчек фейсбучный)

Roman Pominov
@rpominov
Jan 05 2016 22:44
короче если кто напорится:
- "transform-es2015-classes",
- "syntax-class-properties",
- "transform-class-properties",
+ "transform-class-properties",
+ "transform-es2015-classes",
Denis Stoyanov
@xgrommx
Jan 05 2016 22:45
@rpominov я давно понял что syntax не нужен
Roman Pominov
@rpominov
Jan 05 2016 22:47
syntax убрать — бонус, главное поменять местами
Kirill Yakovenko
@blia
Jan 05 2016 22:53
@rpominov верно, что
"transform-es2015-classes",
"transform-class-properties"
не работает с props, a
"transform-class-properties",
"transform-es2015-classes"
работает?
Roman Pominov
@rpominov
Jan 05 2016 22:58
@blia да, похоже на то. У меня так. Сам офигел.
Kirill Yakovenko
@blia
Jan 05 2016 22:58
Illia Seheda
@ALF-er
Jan 05 2016 22:59
ну то что порядок важен - это ж давно известно и понятно
Roman Pominov
@rpominov
Jan 05 2016 22:59
я не знал :)
Sergey Rubanov
@chicoxyzzy
Jan 05 2016 23:00

ну то что порядок важен - это ж давно известно и понятно

знать бы еще какой правильный

Kirill Yakovenko
@blia
Jan 05 2016 23:00
и я. и это тупо баг. Вот бы код ломался при разной очередности инпортов
Sergey Rubanov
@chicoxyzzy
Jan 05 2016 23:00
особенно при написании своего трансформа
Illia Seheda
@ALF-er
Jan 05 2016 23:00
хммм... мне чёт казалось, что ты учавствовал в том обсуждении. Это было в одном из чатиков. Когда react-transform обсуждали
иначе бабель не может работать. Или ему проверять все варианты последовательностей из выбраных пользовтелем трансформов?
Kirill Yakovenko
@blia
Jan 05 2016 23:02
это надо как минимум указывать на сайте. Как минимум обычные депсы решают эту проблему. Или я не понимаю.
Illia Seheda
@ALF-er
Jan 05 2016 23:02
бабель берёт AST и отдаёт его одному трансформу, получает новое AST передаёт следующему, и так далее
понятно, что если менять местами, то будут разные результаты
Kirill Yakovenko
@blia
Jan 05 2016 23:03
нет. Мне не понятно.
Illia Seheda
@ALF-er
Jan 05 2016 23:03
эммм...
Kirill Yakovenko
@blia
Jan 05 2016 23:04
ну типа это очень тупо, что я должен угадывать приоритет. Даже не зная его.
ну и надо сначала весь аст. Потом все трансфомеры
Illia Seheda
@ALF-er
Jan 05 2016 23:06
пусть наше AST - это строка "ababab". Есть 2 трансформа (на одном пики точёные...) один заменяет "a" на "b", другой "b" на "a". Если сначал первый потом второй, то будет "aaaaaa". Если сначала второй потом первый, то - "bbbbbb"
Kirill Yakovenko
@blia
Jan 05 2016 23:07
ок. Это надо объяснять, если всем(практически) пофигу на приоритет в конфиге?
мне кажется - да
Illia Seheda
@ALF-er
Jan 05 2016 23:07
ну доки у бабеля так себе согласен (не читал доки для 6ого вообще)
Kirill Yakovenko
@blia
Jan 05 2016 23:09
вот когда рауты мапишь - ровно та же херь. и в доках написано всегда, что мэтчится первый попавшийся, после, возможно другой.