feat(benchmarks): add static tree benchmark
This commit is contained in:

committed by
Martin Probst

parent
4287f1716d
commit
eef4c22e87
40
modules/benchmarks/src/tree/ng2_static/tree.ts
Normal file
40
modules/benchmarks/src/tree/ng2_static/tree.ts
Normal file
@ -0,0 +1,40 @@
|
||||
import {Component, Input, NgModule} from '@angular/core';
|
||||
import {BrowserModule} from '@angular/platform-browser';
|
||||
|
||||
import {TreeNode, emptyTree, maxDepth} from '../util';
|
||||
|
||||
function createTreeComponent(level: number, isLeaf: boolean) {
|
||||
const nextTreeEl = `tree${level+1}`;
|
||||
const template = isLeaf ?
|
||||
`<span> {{data.value}} </span>` :
|
||||
`<span> {{data.value}} <span><${nextTreeEl} [data]='data.right'></${nextTreeEl}></span><span><${nextTreeEl} [data]='data.left'></${nextTreeEl}></span></span>`;
|
||||
|
||||
@Component({selector: `tree${level}`, template: template})
|
||||
class TreeComponent {
|
||||
@Input()
|
||||
data: TreeNode;
|
||||
}
|
||||
|
||||
return TreeComponent;
|
||||
}
|
||||
|
||||
@Component({selector: 'tree', template: `<tree0 *ngIf="data.left != null" [data]='data'></tree0>`})
|
||||
export class RootTreeComponent {
|
||||
@Input()
|
||||
data: TreeNode = emptyTree;
|
||||
}
|
||||
|
||||
function createModule(): any {
|
||||
const components: any[] = [RootTreeComponent];
|
||||
for (var i = 0; i <= maxDepth; i++) {
|
||||
components.push(createTreeComponent(i, i === maxDepth));
|
||||
}
|
||||
|
||||
@NgModule({imports: [BrowserModule], bootstrap: [RootTreeComponent], declarations: [components]})
|
||||
class AppModule {
|
||||
}
|
||||
|
||||
return AppModule;
|
||||
}
|
||||
|
||||
export const AppModule = createModule();
|
Reference in New Issue
Block a user