Мне не хватает раздела «Ссылки» в левом сайдбаре. Чтобы можно было их фильтровать, выделить несколько и открыть все в новых табах/скачать.
Допилите, пожалуйста.
А так все отлично, прямо ностальгия. Не знал об этом проекте, теперь буду следить. Спасибо вам большое.
Просто JSX из grunt-react уже поддерживает некоторые фишки ES6(но далеко не все), поэтому не возникало повода использовать сторонний препроцессор. Но спасибо за наводку, обязательно попробую. Правда, я использую grunt, но думаю не составит труда нагуглить es6 трансформер под grunt.
Не видел, но сейчас посмотрю. Я бы не называл это паттерном, мне кажется, это «костыль» до поры до времени, пока нам не завезут нормальные классы в ES6 или ES7.
1) Не обижайтесь, но вы изобрели велосипед, вместо того, чтобы использовать готовое, поддерживаемое решение с коммуньюти и документацией, каковым является WebPack(ну или Browserify, или RequireJS)
2) Это я и называю колбэк хеллом. Веселье начинается, когда у нас сложная иерархия с многими уровнями компонентов, все предки будут тащит какой-нибудь onAuthorProfileLinkClicked много уровней, пока, наконец, не передадут его адресату. Pub/Sub я не люблю, т.к. это сложно дебажить, не всегда понятно, кто емитнул такой-то евент, а в определенных реализациях компоненты надо еще и ансабать, а то memory leak-ов не насчитаешься. В Flux же ансаб не нужен, а инициатора события я всегда могу найти, просто заглянув в стэк, т.к. вызов action-а синхронен. В принципе, теперь, когда я об этом думаю, Flux можно наверное использовать вместе с веб компонентами. Надо попробовать, на досуге, после праздников. Если чего дельного выйдет, отпишусь ;)
3) То есть сделать вот так
body[unresolved]{
opacity: 0;
}
например? Что ж, хитро, ЕМНИП я именно так решал проблему с «конвульсиями» лэйаута в Angular. Но ведь тогда мы ограничены только анимациями CSS для анимации входа? JS анимации использовать не получится?
В общем, пока мне все равно кажется, что для моих целей web components еще слишком «сыры». Для меня, переломный момент наступит когда кто-то сварганет большой проект на web components, я на него зайду, и скажу «Ептить, это же охренительно!», а потом нагуглю видео запись конфы с разрабами, где они будут говорить «Мы писали наш проект на web components, и это было охренительно!» Ну, а пока…
Ах да, если Вас не затруднит, у меня появилось еще пара вопросов:
4) А как это скалируется? Ну, то есть, во-первых, нормально ли пишутся большие проекты на web components, а во-вторых, легко ли переписать маленькое приложение в большое, как у вас с code reuse?
Вы знаете, когда я лоханулся с Angular(пресловутый dirty checking, 2000 биндингов хватит всем!) я выбирал, переписать все на ReactJS или на веб компонентах. И я не выбрал веб-компоненты по нескольким причинам:
1) Минификация. Я использую WebPack(кстати, рекомендую), все опциональные модули грузятся асинхронно через AMD, а вот критические модули грузятся CommonJS-ом, то есть они попадают в один большой минифицированный .js, который грузится сразу, одним реквестом. Как мне реализовать это на веб компонентах? У меня всегда будет 100500 реквестов, пока все не подгрузится, не так ли?
2) Как я могу из веб компоненты передать что-то выше по иерархии? Например, у меня есть компонента-виджет, которая показывает последние посты, при клике на пост, мне нужно, чтобы мэйн вьюшка показала этот пост, то есть компонента должна сообщить родителю, что пользователь хочет посмотреть пост. В React у меня для этого есть action(ну, который из Flux), который я вызываю, а в веб компонентах, мне надо было бы погрузится во все прелести callback hell.
3) Flickering(как же это будет по-русски?), то есть «дерганье» интерфейса, пока что-то не подгрузится. То есть, если у меня есть компонента с главным меню, то на ее месте будет пусто, пока реквест не вернется, а когда вернется. она ВНЕЗАПНО появится и начнет толкать весь лэйаут в стороны. Angular, кстати, тоже этим страдает, и ng-cloak нихрена не спасает, враки это все. В реакте же я могу показать прелоудер, либо еще что, пока все реквесты не вернутся, а когда вернуться, я могу сделать всему этому красивую анимацию входа.
В общем, мое мнение, что веб компоненты пока слишком сыры, и тот факт, что Вам приходится пользоваться полифилами, этому доказательство. Когда-нибудь весь веб перейдет на веб компоненты, это неизбежно, но этот день не сегодня. Кстати, комманда React об этом осведомлена и к этому готовится. Рождение на свет веб компонентов не будет означать смерть для фронтенд JS библиотек, ведь фреймворки будут нужны в любом случае.
Тогда да, а так нет.
А еще, не могу не посоветовать это замечательный туториал github.com/timoxley/functional-javascript-workshop/
Но ведь для этого есть Vue.js
Допилите, пожалуйста.
А так все отлично, прямо ностальгия. Не знал об этом проекте, теперь буду следить. Спасибо вам большое.
2) Это я и называю колбэк хеллом. Веселье начинается, когда у нас сложная иерархия с многими уровнями компонентов, все предки будут тащит какой-нибудь onAuthorProfileLinkClicked много уровней, пока, наконец, не передадут его адресату. Pub/Sub я не люблю, т.к. это сложно дебажить, не всегда понятно, кто емитнул такой-то евент, а в определенных реализациях компоненты надо еще и ансабать, а то memory leak-ов не насчитаешься. В Flux же ансаб не нужен, а инициатора события я всегда могу найти, просто заглянув в стэк, т.к. вызов action-а синхронен. В принципе, теперь, когда я об этом думаю, Flux можно наверное использовать вместе с веб компонентами. Надо попробовать, на досуге, после праздников. Если чего дельного выйдет, отпишусь ;)
3) То есть сделать вот так
например? Что ж, хитро, ЕМНИП я именно так решал проблему с «конвульсиями» лэйаута в Angular. Но ведь тогда мы ограничены только анимациями CSS для анимации входа? JS анимации использовать не получится?
В общем, пока мне все равно кажется, что для моих целей web components еще слишком «сыры». Для меня, переломный момент наступит когда кто-то сварганет большой проект на web components, я на него зайду, и скажу «Ептить, это же охренительно!», а потом нагуглю видео запись конфы с разрабами, где они будут говорить «Мы писали наш проект на web components, и это было охренительно!» Ну, а пока…
Ах да, если Вас не затруднит, у меня появилось еще пара вопросов:
4) А как это скалируется? Ну, то есть, во-первых, нормально ли пишутся большие проекты на web components, а во-вторых, легко ли переписать маленькое приложение в большое, как у вас с code reuse?
5) А как это тестируется?
1) Минификация. Я использую WebPack(кстати, рекомендую), все опциональные модули грузятся асинхронно через AMD, а вот критические модули грузятся CommonJS-ом, то есть они попадают в один большой минифицированный .js, который грузится сразу, одним реквестом. Как мне реализовать это на веб компонентах? У меня всегда будет 100500 реквестов, пока все не подгрузится, не так ли?
2) Как я могу из веб компоненты передать что-то выше по иерархии? Например, у меня есть компонента-виджет, которая показывает последние посты, при клике на пост, мне нужно, чтобы мэйн вьюшка показала этот пост, то есть компонента должна сообщить родителю, что пользователь хочет посмотреть пост. В React у меня для этого есть action(ну, который из Flux), который я вызываю, а в веб компонентах, мне надо было бы погрузится во все прелести callback hell.
3) Flickering(как же это будет по-русски?), то есть «дерганье» интерфейса, пока что-то не подгрузится. То есть, если у меня есть компонента с главным меню, то на ее месте будет пусто, пока реквест не вернется, а когда вернется. она ВНЕЗАПНО появится и начнет толкать весь лэйаут в стороны. Angular, кстати, тоже этим страдает, и ng-cloak нихрена не спасает, враки это все. В реакте же я могу показать прелоудер, либо еще что, пока все реквесты не вернутся, а когда вернуться, я могу сделать всему этому красивую анимацию входа.
В общем, мое мнение, что веб компоненты пока слишком сыры, и тот факт, что Вам приходится пользоваться полифилами, этому доказательство. Когда-нибудь весь веб перейдет на веб компоненты, это неизбежно, но этот день не сегодня. Кстати, комманда React об этом осведомлена и к этому готовится. Рождение на свет веб компонентов не будет означать смерть для фронтенд JS библиотек, ведь фреймворки будут нужны в любом случае.
Там просто методы объявлены новым ситаксисом