Посмотрите как можно запустить Ivy на stackblitz
Ну а для ваших экспериментов Uri специально подготовил IvyComponent.
А Minko добавил свою демку прям из последних внутренних сорсов.
Angular v7.1.0-ee8310445
и это опять же не означает, что Ivy придет в ближайших релизах.
Ну а для ваших экспериментов Uri специально подготовил IvyComponent.
А Minko добавил свою демку прям из последних внутренних сорсов.
Angular v7.1.0-ee8310445
и это опять же не означает, что Ivy придет в ближайших релизах.
Опубликовал статью по Angular Elements
https://habr.com/post/432664/
https://habr.com/post/432664/
Хабр
Внедряем Angular компоненты в React, Vue и даже JQuery если хотите
Если вы нашли крутой компонент в npm, но она с приставкой ng, ngx, angular и так далее, то не стоит расстраиваться по этому поводу. Есть много решений, чтобы это...
еще один бонус для статьи, для поиска именно Angular совместимых пакетов в npm, можете использовать такую утилиту - https://ngx.tools/
Прямо сейчас идет ngAir говорят про Perfume.js (метрика производительности) . Оказывается полный Api работает только на Chrome,🤔 . в FF показывает всего пару метрик. (одна!)
Немного эксклюзива от Rob Wormald про IVY. В прошедший четверг прошла закрытая сессия QA от nrwl. Который, конечно же, я пропустил, но они все таки прислали видео. Видео не могу опубликовать, но пересказать на свой лад, считаю нужным.
- Это уже 4 попытка сделать оптимизированный рендерер, мы пытаемся сделать это уже в четвертый раз, поэтому и такое название - IVY. В то время, когда мы делали AngularJS, веб технологии опережали сам фреймворк, и были естественные ограничения. И я считаю, мы создали хороший фреймворк (Angular) для больших enterprise приложений. И когда у вас такое большое приложение, размер приложения не имеет такой большой разницы, на 100кб больше или меньше, какая разница? Но когда вы делаете свой маленький блог, размеры приложения начинают играть важную роль. Летом прошлого года, мы начали делать новый рендерер. У нас (в Google) много приложений на Angular. И мы должны заботится о старых решениях, чтобы их так же перевести на новый rendrer. На данном этапе не стоит ожидать от Ivy чего то сверхестественного.
Когда смотрите на NgModule вы не видите его, вы смотрите на компонент, а в NgModule происходит невидимая магия.
Если дадите нам шаблон, мы сделаем из него оптимизированный js код, и это будет быстрее работать чем например простой jsx в react. Так что, это действительно хорошая вещь.
- Так что касается производительности?
- Вы не получите болшого скачка в начале, но конечно же вы уберете много неиспользуемого мусора. В некоторых сценариях это будет работать медленнее, в некоторых быстро. Но опять же это мои предлположения, нужно смотреть тесты.
- Как насчет начальной загрузки?
- Первая загрузка станет легче, так же ждут кардинальные улучшения и упрощение LazyLoad. Вы просто загружаете компонент и показываете его, в отличии от загрузки модулей. Да это был хороший подход (NgModule). И мы разрабатываем совершенно новую вещь, и одна из этих принципов была - идея локали.
Да, вы все знаете зачем нам ранее нужно было анализировать весь код, собирать приложение целиком и т.д. (Тут он про metadata.json и принцыпы упаковки модулей в npm для angular, почему это хорошо и т.п.) Поэтому принцип локали будет означать, что вы будете компилировать компонент локально. (Принося директиву и т.д. отдельно, не связывая в один NgModule). И это даст, я считаю, легкость в обучении Angular, так же в тестировании приложений. Самое замечательное что это будет совместимо с предыдущими версиями.
- А что насчет Angular Elements?
- (кратко) с Ivy весь ненужный мусор удалится.
- А что с CD и Zone.js?
- Тут нужно понимать что Zone.js и CD разные вещи, да Zone.js блестящее решение для отработки большинства случаев, но все вы знаете какие недостатки у этого подхода есть.
Ivy разработаны так, чтобы не полагаться на зоны, они могут работать и без них. Да, вы можете всегда дернуть cd чтобы изменения обнаружились. Пока мы не знаем, какое правильное решение будет для большинства разработчиков.
(тут немного про компиляторы tsc, ngc)
- Так когда выйдет Ivy?
- Я не буду оглашать точную дату (тут приводит что нужно пройти много тестов и т.д.) Но мы довольны производительностью. В нашем внутреннем репозитории более 95% тестов проходит. И мы пробуем на наших внутренних (Google) приложениях, и если это будет работать у нас, то будет работать и у остальных разработчиков.
И последнее что я хочу сказать - у нас есть огромная клиентская база, и мы не сможем так же перескочить как с angularjs на angular. И поэтому мы сдержанны в предоставлении информации, мы должны быть уверены что пользователи получат стабильное приложение, и должны подождать пару дополнительных месяцев, чтобы получить новую хорошую вещь.
- Это уже 4 попытка сделать оптимизированный рендерер, мы пытаемся сделать это уже в четвертый раз, поэтому и такое название - IVY. В то время, когда мы делали AngularJS, веб технологии опережали сам фреймворк, и были естественные ограничения. И я считаю, мы создали хороший фреймворк (Angular) для больших enterprise приложений. И когда у вас такое большое приложение, размер приложения не имеет такой большой разницы, на 100кб больше или меньше, какая разница? Но когда вы делаете свой маленький блог, размеры приложения начинают играть важную роль. Летом прошлого года, мы начали делать новый рендерер. У нас (в Google) много приложений на Angular. И мы должны заботится о старых решениях, чтобы их так же перевести на новый rendrer. На данном этапе не стоит ожидать от Ivy чего то сверхестественного.
Когда смотрите на NgModule вы не видите его, вы смотрите на компонент, а в NgModule происходит невидимая магия.
Если дадите нам шаблон, мы сделаем из него оптимизированный js код, и это будет быстрее работать чем например простой jsx в react. Так что, это действительно хорошая вещь.
- Так что касается производительности?
- Вы не получите болшого скачка в начале, но конечно же вы уберете много неиспользуемого мусора. В некоторых сценариях это будет работать медленнее, в некоторых быстро. Но опять же это мои предлположения, нужно смотреть тесты.
- Как насчет начальной загрузки?
- Первая загрузка станет легче, так же ждут кардинальные улучшения и упрощение LazyLoad. Вы просто загружаете компонент и показываете его, в отличии от загрузки модулей. Да это был хороший подход (NgModule). И мы разрабатываем совершенно новую вещь, и одна из этих принципов была - идея локали.
Да, вы все знаете зачем нам ранее нужно было анализировать весь код, собирать приложение целиком и т.д. (Тут он про metadata.json и принцыпы упаковки модулей в npm для angular, почему это хорошо и т.п.) Поэтому принцип локали будет означать, что вы будете компилировать компонент локально. (Принося директиву и т.д. отдельно, не связывая в один NgModule). И это даст, я считаю, легкость в обучении Angular, так же в тестировании приложений. Самое замечательное что это будет совместимо с предыдущими версиями.
- А что насчет Angular Elements?
- (кратко) с Ivy весь ненужный мусор удалится.
- А что с CD и Zone.js?
- Тут нужно понимать что Zone.js и CD разные вещи, да Zone.js блестящее решение для отработки большинства случаев, но все вы знаете какие недостатки у этого подхода есть.
Ivy разработаны так, чтобы не полагаться на зоны, они могут работать и без них. Да, вы можете всегда дернуть cd чтобы изменения обнаружились. Пока мы не знаем, какое правильное решение будет для большинства разработчиков.
(тут немного про компиляторы tsc, ngc)
- Так когда выйдет Ivy?
- Я не буду оглашать точную дату (тут приводит что нужно пройти много тестов и т.д.) Но мы довольны производительностью. В нашем внутреннем репозитории более 95% тестов проходит. И мы пробуем на наших внутренних (Google) приложениях, и если это будет работать у нас, то будет работать и у остальных разработчиков.
И последнее что я хочу сказать - у нас есть огромная клиентская база, и мы не сможем так же перескочить как с angularjs на angular. И поэтому мы сдержанны в предоставлении информации, мы должны быть уверены что пользователи получат стабильное приложение, и должны подождать пару дополнительных месяцев, чтобы получить новую хорошую вещь.
stat.png
492.2 KB
Появился такой benchmark, сравнение 2х компиляторов, в реальном приложении
В итоге выводит такие результаты в байтах:
NGC: 112321 NGTSC: 48635
В итоге выводит такие результаты в байтах:
NGC: 112321 NGTSC: 48635
Прекращайте заставлять всех своих пользователей платить за IE9!
- именно с таким тезисом выступал Stephen Fluin на прошедшем в октябре AngularMix.
Идея состоит в том, чтобы собирать разные приложения для старых и современных браузеров. Такое есть во Vue CLI.
Теперь возможно упростить всю эту работу и с Angular CLI вот с таким расширением - ngx-build-modern
- именно с таким тезисом выступал Stephen Fluin на прошедшем в октябре AngularMix.
Идея состоит в том, чтобы собирать разные приложения для старых и современных браузеров. Такое есть во Vue CLI.
Теперь возможно упростить всю эту работу и с Angular CLI вот с таким расширением - ngx-build-modern
Пришло время подвести итоги 2018 года.
И сразу я бы хотел поблагодорить @chicoxyzzy который ведет канал https://t.me/juliarderity .
Если вы еще почему то не подписаны, то обязательно подписывайтесь! Там очень много крутой инфы.
Так же хочу поблагодорить @Ai_boy и @thekiba за все труды которые они делают в русскоязычном Angular сообществе.
Посмотрите или послушайте, свежую версию Пятиминутки Angular, желательно на youtube . Там есть крутой инсайд =)
Ну и наконец я подготовил для вас статистику и анализ русскоязычного Angular сообщества за 2018 год.
И сразу я бы хотел поблагодорить @chicoxyzzy который ведет канал https://t.me/juliarderity .
Если вы еще почему то не подписаны, то обязательно подписывайтесь! Там очень много крутой инфы.
Так же хочу поблагодорить @Ai_boy и @thekiba за все труды которые они делают в русскоязычном Angular сообществе.
Посмотрите или послушайте, свежую версию Пятиминутки Angular, желательно на youtube . Там есть крутой инсайд =)
Ну и наконец я подготовил для вас статистику и анализ русскоязычного Angular сообщества за 2018 год.
Вдохновивишись командой
Он считывает все, например pipe подключенного к проекту модуля. Поэтому даже у helloworld приложения он подсчитает порядка 17 паипов. (из
npx rxjs-operator-counterкоторая выводит список rxjs операторов в проекте, написал такую утилиту -
ng-app-counterдля Angular приложений. Запускать таким образом
npx ng-app-counterв папке где лежит tsconfig, или же явно указывая путь к нему
npx ng-app-counter -p ./project/tsconfig.json
Он считывает все, например pipe подключенного к проекту модуля. Поэтому даже у helloworld приложения он подсчитает порядка 17 паипов. (из
@angular/common
).Хорошая новость для nest разработчиков. Команда nrwl включила в свой nx шаблон nestjs.
Так же можете посмотреть, как должен быть реализован правильный бэк фреймворк с позиции Angular разработчика(ServeRX-ts).
ng g node-app nestjs-app --framework nestjsОб этом в статье
Так же можете посмотреть, как должен быть реализован правильный бэк фреймворк с позиции Angular разработчика(ServeRX-ts).
Nrwl
Robust Backends with Nx 7.3 and NestJS
Nx 7.3 makes building robust backends with Angular frontends easier with NestJS!
Немного про AST и линтеры в статье . А именно про то как Tim Deschryver делал
rxjs-operator-counter
Как и писал ранее про плагин для VSCode.
Angular Console plugin теперь добавили в marketplace vscode.
Angular Console plugin теперь добавили в marketplace vscode.
Nrwl открыли доступ на скачивание книги "Angular Enterprise Monorepo Patterns"
При подписке указывайте почту не на gmail.
При подписке указывайте почту не на gmail.
Помните еще про systemjs?
Обновили до 3.0.0 пока условно в beta.
Был изменен Import Maps, согласно предложению
ну и юзать вместо systemjs-packagemap - systemjs-importmap
——
касательно предложения, хотелось бы увидеть конечно Dynamic import maps, что и предостовляли раньше в systemjs и rollup
Обновили до 3.0.0 пока условно в beta.
Был изменен Import Maps, согласно предложению
ну и юзать вместо systemjs-packagemap - systemjs-importmap
——
касательно предложения, хотелось бы увидеть конечно Dynamic import maps, что и предостовляли раньше в systemjs и rollup
Что нового в NgRx 7 ?
Пару фич в store,
- можете прокидывать пропсы в селектор для вычисления с дополнительной информацией.
- новый метод для тестирования
- появились хуки OnInitEffects и OnIdentifyEffects
Для Entity добавили парочку новых методов.
обо всем этом в статье.
Пару фич в store,
- можете прокидывать пропсы в селектор для вычисления с дополнительной информацией.
export const getCount = createSelector(
getCounterValue,
(counter, props) => counter * props.multiply);
this.store.pipe(select(fromRoot.getCount, { multiply: 2 }))
- новый метод для тестирования
provideMockStore()
Эффекты:- появились хуки OnInitEffects и OnIdentifyEffects
Для Entity добавили парочку новых методов.
обо всем этом в статье.
Medium
Announcing NgRx Version 7 — Docs, Testing, and more
Today we are announcing the version 7 release of the NgRx platform. This release contains bug fixes, new features, and some breaking…
Igor Minar на AngularNYC отвечает на вопросы про IVY https://youtu.be/a3j5U5WVmUo
Еще один способ для отложенной загрузки модулей c помощью @herodevs/lazy-af :
<div (mouseover)="load = true">Hover to load TestModule</div>
<lazy-af *ngIf="load" moduleName="src/app/test/test.module#TestModule"></lazy-af>
Хочу еще напомнить про
NgxfModule.forLazy(LazyComponent)
@ngxf/platform
там тоже есть много интересных идей. А именноNgxfModule.forLazy(LazyComponent)
<ng-container *lazy="'src/app/view/lazy/lazy.module#LazyModule';
activate activate; deactivate deactivate
">${NG_CONTENT}</ng-container>