Demo repository showing how ivy allows significant API simplification.
This repository demonstrates simplified API for using Angular enabled by ivy.
Disclaimer: the APIs below are highly experimental and likely to change. The produced bundle by parcel is not tree-shaked, which means that it'll be significant bigger than what Angular CLI will produce once Ivy is officially released.
The entire application is within index.html
and index.ts
. The index.ts
file contains two components and a pipe. There are two important points to notice:
@NgModule
sThis already reduces the learning curve dramatically by cutting three of the most misunderstood concepts in Angular. Keep in mind that Ivy does not deprecate NgModules and zones, they'll keep function the way they do today. The only difference is that with the new rendering they become optional.
To try the demo:
git clone [email protected]:mgechev/angular-ivy-demo
cd angular-ivy-demo && npm i
npm start
Now open http://localhost:1234.
Try to create a "Hello, World!" application by:
hello-world.html
with the following content:<!DOCTYPE html>
<html lang="en">
<body>
<app></app>
<script src="hello-world.ts"></script>
</body>
</html>
hello-world.ts
with the following content:import {Component, ɵrenderComponent as renderComponent} from '@angular/core';
import '@angular/compiler';
@Component({
selector: 'app',
template: 'Hello, World!'
})
class AppComponent {}
renderComponent(AppComponent);
./node_modules/.bin/parcel hello-world.html
MIT