Skip to content

Commit e8a9c9b

Browse files
committed
Merge branch 'master' of github.com:krausest/js-framework-benchmark
2 parents 5aaeea8 + ab75a79 commit e8a9c9b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+3126
-5388
lines changed

frameworks/keyed/angular-cf-nozone/package-lock.json

Lines changed: 2225 additions & 5018 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frameworks/keyed/angular-cf-nozone/package.json

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,17 @@
1717
},
1818
"private": true,
1919
"dependencies": {
20-
"@angular/common": "17.0.2",
21-
"@angular/compiler": "17.0.2",
22-
"@angular/core": "17.0.2",
23-
"@angular/platform-browser": "17.0.2",
24-
"@angular/ssr": "17.0.0",
20+
"@angular/common": "^17.1.0-next.0",
21+
"@angular/compiler": "^17.1.0-next.0",
22+
"@angular/core": "^17.1.0-next.0",
23+
"@angular/platform-browser": "^17.1.0-next.0",
2524
"rxjs": "7.8.1",
26-
"tslib": "^2.6.2"
25+
"tslib": "^2.3.0"
2726
},
2827
"devDependencies": {
29-
"@angular-devkit/build-angular": "17.0.0",
30-
"@angular/cli": "17.0.0",
31-
"@angular/compiler-cli": "17.0.2",
28+
"@angular-devkit/build-angular": "^17.1.0-rc.1",
29+
"@angular/cli": "^17.1.0-rc.1",
30+
"@angular/compiler-cli": "^17.1.0-next.0",
3231
"@types/node": "^18.18.9",
3332
"typescript": "5.2.2"
3433
}

frameworks/keyed/angular-cf-nozone/src/app/app.component.html

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,19 @@ <h1>Angular {{version}} (no Zone.js)</h1>
2828
</div>
2929
<table class="table table-hover table-striped test-data">
3030
<tbody>
31-
@for (item of data; track item.id)
32-
{
33-
<tr [class.danger]="item.id === selected">
34-
<td class="col-md-1">{{item.id}}</td>
35-
<td class="col-md-4">
36-
<a href="#" (click)="select(item, $event)">{{item.label}}</a>
37-
</td>
38-
<td class="col-md-1"><a href="#" (click)="delete(item, $event)"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span></a></td>
39-
<td class="col-md-6"></td>
40-
</tr>
31+
@for (item of data(); track item.id) {
32+
<tr [class.danger]="item.id === selected()">
33+
<td class="col-md-1">{{item.id}}</td>
34+
<td class="col-md-4">
35+
<a href="#" (click)="select(item, $event)">{{item.label}}</a>
36+
</td>
37+
<td class="col-md-1">
38+
<a href="#" (click)="delete(item, $event)">
39+
<span class="glyphicon glyphicon-remove" aria-hidden="true"></span>
40+
</a>
41+
</td>
42+
<td class="col-md-6"></td>
43+
</tr>
4144
}
4245
</tbody>
4346
</table>
Lines changed: 30 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import { NgFor } from '@angular/common';
2-
import { ChangeDetectorRef, Component, VERSION, inject } from '@angular/core';
1+
import { Component, VERSION, signal } from '@angular/core';
32

43
interface Data {
54
id: number;
@@ -13,15 +12,12 @@ const nouns = ["table", "chair", "house", "bbq", "desk", "car", "pony", "cookie"
1312
@Component({
1413
selector: 'app-root',
1514
standalone: true,
16-
imports: [NgFor],
1715
templateUrl: './app.component.html',
1816
})
1917
export class AppComponent {
20-
private cdr = inject(ChangeDetectorRef);
21-
22-
data: Array<Data> = [];
23-
selected?: number = undefined;
24-
id: number = 1;
18+
data = signal<Data[]>([]);
19+
selected = signal<number | undefined>(undefined);
20+
id = 1;
2521
backup?: Array<Data> = undefined;
2622
version = VERSION.full;
2723

@@ -34,63 +30,58 @@ export class AppComponent {
3430
return data;
3531
}
3632

37-
_random(max: number) {
38-
return Math.round(Math.random() * 1000) % max;
39-
}
40-
41-
itemById(index: number, item: Data) {
42-
return item.id;
43-
}
4433

4534
select(item: Data, event: Event) {
4635
event.preventDefault();
47-
this.selected = item.id;
48-
this.cdr.detectChanges();
36+
this.selected.set(item.id);
4937
}
5038

5139
delete(item: Data, event: Event) {
5240
event.preventDefault();
53-
for (let i = 0, l = this.data.length; i < l; i++) {
54-
if (this.data[i].id === item.id) {
55-
this.data.splice(i, 1);
41+
let data = this.data();
42+
for (let i = 0, l = data.length; i < l; i++) {
43+
if (data[i].id === item.id) {
44+
data.splice(i, 1);
5645
break;
5746
}
5847
}
59-
this.cdr.detectChanges();
48+
this.data.set(data);
6049
}
6150

6251
run() {
63-
this.data = this.buildData();
64-
this.cdr.detectChanges();
52+
this.data.set(this.buildData());
6553
}
6654

6755
add() {
68-
this.data = this.data.concat(this.buildData(1000));
69-
this.cdr.detectChanges();
56+
this.data.set(this.data().concat(this.buildData(1000)));
7057
}
7158

7259
update() {
73-
for (let i = 0; i < this.data.length; i += 10) {
74-
this.data[i].label += ' !!!';
60+
let data = this.data();
61+
for (let i = 0; i < data.length; i += 10) {
62+
data[i].label += ' !!!';
7563
}
76-
this.cdr.detectChanges();
64+
this.data.set(data);
7765
}
7866
runLots() {
79-
this.data = this.buildData(10000);
80-
this.selected = undefined;
81-
this.cdr.detectChanges();
67+
this.data.set(this.buildData(10000));
68+
this.selected.set(undefined);
8269
}
8370
clear() {
84-
this.data = [];
85-
this.selected = undefined;
86-
this.cdr.detectChanges();
71+
this.data.set([]);
72+
this.selected.set(undefined);
8773
}
8874
swapRows() {
89-
if (this.data.length > 998) {
90-
var a = this.data[1];
91-
this.data[1] = this.data[998];
92-
this.data[998] = a;
75+
let data = this.data();
76+
if (data.length > 998) {
77+
var a = data[1];
78+
data[1] = data[998];
79+
data[998] = a;
9380
}
94-
this.cdr.detectChanges();
81+
this.data.set(data);
82+
}
83+
84+
_random(max: number) {
85+
return Math.round(Math.random() * 1000) % max;
9586
}
9687
}
Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
import { bootstrapApplication } from '@angular/platform-browser';
22
import { AppComponent } from './app/app.component';
3-
import { NgZone, ɵNoopNgZone } from '@angular/core';
3+
import { ɵprovideZonelessChangeDetection} from '@angular/core';
44

55
bootstrapApplication(AppComponent, {
6-
providers: [
7-
// https://github.com/angular/angular/issues/47538
8-
{ provide: NgZone, useClass: ɵNoopNgZone }
9-
]
6+
providers: [ɵprovideZonelessChangeDetection()]
107
});

frameworks/keyed/frei-hooks/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<html lang="en">
33
<head>
44
<meta charset="utf-8" />
5-
<title>React Hooks</title>
5+
<title>Frei Hooks</title>
66
<link href="/css/currentStyle.css" rel="stylesheet"/>
77
</head>
88
<body>

frameworks/keyed/frei-hooks/package-lock.json

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frameworks/keyed/frei-hooks/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,6 @@
3434
"webpack-cli": "5.0.1"
3535
},
3636
"dependencies": {
37-
"@aimwhy/frei": "^1.0.40"
37+
"@aimwhy/frei": "^1.0.43"
3838
}
3939
}

frameworks/keyed/gxt/package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frameworks/keyed/gxt/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
"@glint/environment-ember-template-imports": "^1.2.2",
2323
"@glint/environment-glimmerx": "^1.2.2",
2424
"@glint/template": "^1.2.2",
25-
"@lifeart/gxt": "0.0.16",
25+
"@lifeart/gxt": "0.0.21",
2626
"prettier": "^3.1.1",
2727
"prettier-plugin-ember-template-tag": "^2.0.0",
2828
"terser": "^5.26.0"

0 commit comments

Comments
 (0)