parent
5d82d8da6d
commit
f258ec67bf
|
@ -1,13 +1,23 @@
|
||||||
|
# Overview
|
||||||
|
|
||||||
|
Ivy is a new backwards-compatible Angular renderer focused on further speed improvements, size reduction, and increased flexibility.
|
||||||
|
|
||||||
|
Ivy is currently not feature complete, but can be tested via [`enableIvy: true`](https://next.angular.io/guide/aot-compiler#enableivy) [`angularCompilerOptions` flag](https://next.angular.io/guide/aot-compiler#angular-compiler-options).
|
||||||
|
|
||||||
|
We currently expect Ivy to remain behind the flag until it's feature complete and battle tested at Google. In the meantime you can check out this [Hello World demo](https://ng-ivy-demo.firebaseapp.com/).
|
||||||
|
|
||||||
|
# Implementation Status
|
||||||
|
|
||||||
## Annotations
|
## Annotations
|
||||||
| Annotation | `defineXXX()` | Run time | Spec | Compiler | Back Patch |
|
| Annotation | `defineXXX()` | Run time | Spec | Compiler | Back Patch |
|
||||||
| -------------------- | ------------------------------ | ------- | -------- | -------- | -------- |
|
| -------------------- | ------------------------------ | ------- | -------- | -------- | -------- |
|
||||||
| `@Component` | ✅ `defineComponent()` | ✅ | ✅ | ✅ | ❌ |
|
| `@Component` | ✅ `defineComponent()` | ✅ | ✅ | ✅ | ❌ |
|
||||||
| `@Directive` | ✅ `defineDirective()` | ✅ | ✅ | ✅ | ❌ |
|
| `@Directive` | ✅ `defineDirective()` | ✅ | ✅ | ✅ | ❌ |
|
||||||
| `@Directive` | ❌ `defineAbstractDirective()` | ❌ | ❌ | ❌ | ❌ |
|
| `@Directive` | ❌ `defineAbstractDirective()` | ❌ | ❌ | ❌ | ❌ |
|
||||||
| `@Pipe` | ✅ `definePipe()` | ✅ | ✅ | ✅ | ❌ |
|
| `@Pipe` | ✅ `definePipe()` | ✅ | ✅ | ✅ | ❌ |
|
||||||
| `@Injectable` | ❌ `defineInjectable()` | ❌ | ❌ | ❌ | ❌ |
|
| `@Injectable` | ✅ `defineInjectable()` | ✅ | ❌ | ❌ | ❌ |
|
||||||
| `@NgModule` | ❌ `defineInjector()` | ❌ | ❌ | ❌ | ❌ |
|
| `@NgModule` | ✅ `defineInjector()` | ✅ | ❌ | ❌ | ❌ |
|
||||||
| `@ConfigureInjector` | ❌ `defineInjector()` | ❌ | ❌ | ❌ | ❌ |
|
| `@ConfigureInjector` | ❌ `defineInjector()` | ❌ | ❌ | ❌ | ❌ |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -55,24 +65,24 @@
|
||||||
| `<div style="literal">` | ✅ | ✅ | ✅ |
|
| `<div style="literal">` | ✅ | ✅ | ✅ |
|
||||||
| `<div [style]="exp">` | ❌ | ❌ | ❌ |
|
| `<div [style]="exp">` | ❌ | ❌ | ❌ |
|
||||||
| `<div [style.foo]="exp">` | ✅ | ✅ | ❌ |
|
| `<div [style.foo]="exp">` | ✅ | ✅ | ❌ |
|
||||||
| `{{ ['literal', exp ] }}` | ✅ | ✅ | ❌ |
|
| `{{ ['literal', exp ] }}` | ✅ | ✅ | ✅ |
|
||||||
| `{{ { a: 'literal', b: exp } }}` | ✅ | ✅ | ❌ |
|
| `{{ { a: 'literal', b: exp } }}` | ✅ | ✅ | ✅ |
|
||||||
| `{{ exp \| pipe: arg }}` | ✅ | ✅ | ❌ |
|
| `{{ exp \| pipe: arg }}` | ✅ | ✅ | ✅ |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## `@Query`
|
## `@Query`
|
||||||
| Feature | Runtime | Spec | Compiler |
|
| Feature | Runtime | Spec | Compiler |
|
||||||
| ------------------------------- | ------- | -------- | -------- |
|
| ------------------------------- | ------- | -------- | -------- |
|
||||||
| `@Query(descendants)` | ✅ | ✅ | ❌ |
|
| `@Query(descendants)` | ✅ | ✅ | n/a |
|
||||||
| `@Query(one)` | ✅ | ✅ | ❌ |
|
| `@Query(one)` | ✅ | ✅ | n/a |
|
||||||
| `@Query(read)` | ✅ | ✅ | ❌ |
|
| `@Query(read)` | ✅ | ✅ | n/a |
|
||||||
| `@Query(selector)` | ✅ | ✅ | ❌ |
|
| `@Query(selector)` | ✅ | ✅ | n/a |
|
||||||
| `@Query(Type)` | ✅ | ✅ | ❌ |
|
| `@Query(Type)` | ✅ | ✅ | n/a |
|
||||||
| `@ContentChildred` | ✅ | ✅ | ❌ |
|
| `@ContentChildred` | ✅ | ✅ | ❌ |
|
||||||
| `@ContentChild` | ✅ | ✅ | ❌ |
|
| `@ContentChild` | ✅ | ✅ | ✅ |
|
||||||
| `@ViewChildren` | ✅ | ✅ | ❌ |
|
| `@ViewChildren` | ✅ | ✅ | ❌ |
|
||||||
| `@ViewChild` | ✅ | ✅ | ❌ |
|
| `@ViewChild` | ✅ | ✅ | ✅ |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -81,7 +91,7 @@
|
||||||
| ------------------------------- | ------- | -------- | -------- |
|
| ------------------------------- | ------- | -------- | -------- |
|
||||||
| `<ng-content>` | ✅ | ✅ | ✅ |
|
| `<ng-content>` | ✅ | ✅ | ✅ |
|
||||||
| `<ng-content selector="...">` | ✅ | ✅ | ✅ |
|
| `<ng-content selector="...">` | ✅ | ✅ | ✅ |
|
||||||
| container `projectAs` | ✅ | ✅ | ❌ |
|
| container `projectAs` | ✅ | ✅ | ❌ |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -91,7 +101,7 @@
|
||||||
| `inject(Type)` | ✅ | ✅ | ✅ |
|
| `inject(Type)` | ✅ | ✅ | ✅ |
|
||||||
| `directiveInject(Type)` | ✅ | ✅ | ❌ |
|
| `directiveInject(Type)` | ✅ | ✅ | ❌ |
|
||||||
| `inject(Type, SkipSelf)` | ❌ | ❌ | ❌ |
|
| `inject(Type, SkipSelf)` | ❌ | ❌ | ❌ |
|
||||||
| `attribute('name')` | ✅ | ✅ | ❌ |
|
| `attribute('name')` | ✅ | ✅ | ❌ |
|
||||||
| `injectChangeDetectionRef()` | ✅ | ✅ | ❌ |
|
| `injectChangeDetectionRef()` | ✅ | ✅ | ❌ |
|
||||||
| `injectElementRef()` | ✅ | ✅ | ✅ |
|
| `injectElementRef()` | ✅ | ✅ | ✅ |
|
||||||
| `injectViewContainerRef()` | ✅ | ✅ | ✅ |
|
| `injectViewContainerRef()` | ✅ | ✅ | ✅ |
|
||||||
|
@ -106,12 +116,12 @@
|
||||||
| ----------------------------------- | ------- |
|
| ----------------------------------- | ------- |
|
||||||
| `markDirty()` | ✅ |
|
| `markDirty()` | ✅ |
|
||||||
| `detectChanges()` | ✅ |
|
| `detectChanges()` | ✅ |
|
||||||
| `tick()` | ✅ |
|
| `tick()` | ✅ |
|
||||||
| `attach()` | ✅ |
|
| `attach()` | ✅ |
|
||||||
| `detach()` | ✅ |
|
| `detach()` | ✅ |
|
||||||
| `ON_PUSH` | ✅ |
|
| `ON_PUSH` | ✅ |
|
||||||
| `ALWAYS` | ✅ |
|
| `ALWAYS` | ✅ |
|
||||||
| `DIRTY` | ✅ |
|
| `DIRTY` | ✅ |
|
||||||
| `ATTACHED` | ✅ |
|
| `ATTACHED` | ✅ |
|
||||||
|
|
||||||
|
|
||||||
|
@ -121,7 +131,7 @@
|
||||||
| ----------------------------------- | ------- |
|
| ----------------------------------- | ------- |
|
||||||
| `renderComponent()` | ✅ |
|
| `renderComponent()` | ✅ |
|
||||||
| `getHostElement()` | ✅ |
|
| `getHostElement()` | ✅ |
|
||||||
| `Injector.create()` | ❌ |
|
| `createInjector()` | ❌ |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -129,7 +139,7 @@
|
||||||
| Feature | Runtime | Spec | Compiler |
|
| Feature | Runtime | Spec | Compiler |
|
||||||
| ----------------------------------- | ------- | -------- | -------- |
|
| ----------------------------------- | ------- | -------- | -------- |
|
||||||
| translate text literals | ❌ | ❌ | ❌ |
|
| translate text literals | ❌ | ❌ | ❌ |
|
||||||
| rearrange text nodes | ❌ | ❌ | ❌ |
|
| rearrange text nodes | ❌ | ❌ | ❌ |
|
||||||
| ICU | ❌ | ❌ | ❌ |
|
| ICU | ❌ | ❌ | ❌ |
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue