...
Vue.js is een Java framework. Deze wordt onder andere gebruikt door Nintendo en Adobe. Vue.js is een soort uitbreiding op react
...
Het duurde even tot ik de beginnende kneepjes van Angular in de hand had. Dit kwam wel vrij snel door de grote hoeveelheid documentatie die Angular biedaanbied. Voor bijna elk component dat Angular biedt aanbiedt zijn er tientallen voorbeelden over hoe je het zou kunnen gebruiken. Hierdoor was het maken van het prototype zeer gemakkelijk en vanzelfsprekend. Het enige wat iets lastig was, was het feit dat het maken van pagina's iets uitgebreider was dan met bijvoorbeeld Vue.js.
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<div class="container">
<h1> Dashboards </h1>
<ul *ngFor="let dashboard of dashboards">
<li> Auto: {{ dashboard.car }} coureur: {{ dashboard.driver }} <button>kijk mee</button></li>
</ul>
</div> |
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
import { Component } from '@angular/core';
import dashboardData from './json/dashboard.json';
interface dashboard {
ID: Number;
car: String;
driver: String;
}
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'prototype';
// @ts-ignore
dashboards: dashboard[] = dashboardData;
} |
Resultaat
figuur 4: resultaat angular
Prototype angular + google charts
Omdat angular ook een google charts API integratie hebben we hier ook een prototype voor gemaakt
Code Block | ||||
---|---|---|---|---|
| ||||
import { Component, OnInit } from '@angular/core'; import {FormControl} from "@angular/forms"; @Componentimport { Component, OnInit } from '@angular/core'; import {FormControl} from "@angular/forms"; @Component({ selector: 'app-home', templateUrl: './home.component.html', styleUrls: ['./home.component.css'] }) export class HomeComponent { tabs = ['First', 'Second', 'Third']; selected = new FormControl(0); addTab(selectAfterAdding: boolean) { this.tabs.push('New'); if (selectAfterAdding) { this.selected.setValue(this.tabs.length - 1); } } removeTab(index: number) { this.tabs.splice(index, 1); } } |
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
<div> <button mat-raised-button class="example-add-tab-button" (click)="addTab(selectAfterAdding.checked)"> Add new tab </button> <mat-checkbox #selectAfterAdding> Select tab after adding </mat-checkbox> </div> <mat-tab-group mat-align-tabs="center"> <mat-tab label="First" style="height: 100%"> <div class="example-boundary"> <div class="example-box" cdkDragBoundary=".example-boundary" cdkDrag> <img src="https://lh3.googleusercontent.com/_eWd5RuZfGPlgVcNzsG4S352TTXbZVoHsJju1t2_jFattGC-JaLrRTe02L7tBfQacQ=w600-rwa" height="100%" width="100%"> </div> </div> </mat-tab> <mat-tab label="Second" >Content 2</mat-tab> <mat-tab label="Third" >Content 3</mat-tab> </mat-tab-group> |
Resultaat
figuur 5: resultaat angular google charts
Hoe scoren de frameworks op de criteria
...
Code | Aspect | Cijfer | Toelichting | Bron |
---|---|---|---|---|
CR1 | Documentatie | 7 | Omdat React ongeveer de grootste front-end framework is kun je op onder andere Stackoverflow genoeg hulp vinden, maar omdat het zo snel groeit wordt niet alles gedocumenteerd. | https://www.sam-solutions.com/blog/best-frontend-framework/#3 |
CR2 | Ervaring | 7 | Er zijn 2 teamleden die al eerder gewerkt hebben met React maar er geen grote fan van zijn. | - |
CR3 | Prestatie | 8 | React is één van de snelste frameworks door het gebruik van de virtual DOM. | https://jelvix.com/blog/is-react-js-fast#:~:text =Engineering-,React.,optimal%20choice%20for%20interactive%20design=Engineering-,React.,optimal%20choice%20for%20interactive%20design. https://reactjs.org/docs/faq-internals.html . |
CR4 | Prototype | 9 | Omdat er genoeg hulpbronnen bestaan kon ik het prototype snel maken. | |
CR5 | Onderhouden | 9 | React wordt erg vaak geüpdatet. | https://www.sam-solutions.com/blog/best-frontend-framework/#3 |
...
Code | Aspect | Cijfer | Toelichting | Bron |
---|---|---|---|---|
CR1 | Documentatie | 5 | De documentatie van de DOM is verouderd. | https://www.monocubed.com/blog/best-front-end-frameworks/ |
CR2 | Ervaring | 3 | Niemand in de projectgroep heeft ervaring met jQuery. Er zijn wel een aantal groepsleden die een beetje kennis hebben van Javascript. | - |
CR3 | Prestatie | 3 | Omdat jQuery relatief oud is is de performance nogal laag. | https://www.sam-solutions.com/blog/best-frontend-framework/#3 |
CR4 | Prototype | 5 | In tegenstelling tot React kon ik niet zoveel vinden als jQuery en duurde het maken van een prototype dus ook een stuk langer. | - |
CR5 | Onderhouden | 5 | De API van jQuery is nogal verouderd en jQuery wordt niet vaak geüpdatet. | https://www.sam-solutions.com/blog/best-frontend-framework/#3 https://www.monocubed.com/blog/best-front-end-frameworks/ |
Vue.js
Code | Aspect | Cijfer | Toelichting | Bron |
---|---|---|---|---|
CR1 | Documentatie | 10 | Ik kon genoeg video's en hulp vinden voor het maken van het prototype. | https://www.sam-solutions.com/blog/best-frontend-framework/#3 |
CR2 | Ervaring | 6 | We hebben een workshop gehad over Vue.js. Verder zijn er geen groepsleden met ervaring. | - |
CR3 | Prestatie | 10 | Vue.js is erg snel omdat het een nieuwer framework is en de wrappers extreem snel zijn. | https://www.sam-solutions.com/blog/best-frontend-framework/#3 https://www.ionos.com/digitalguide/websites/web-development/what-is-a-wrapper/ |
CR4 | Prototype | 5 | De syntax is erg nieuw maar er is genoeg documentatie. | - |
CR5 | Onderhouden | 8 | Vue.js heeft tussen de 1 en 3 maanden een update en is 1 van de meest progressieve frameworks. | https://endoflife.date/vue |
...
Code | Aspect | Cijfer | Toelichting | Bron |
---|---|---|---|---|
CR1 | Documentatie | 10 | Ik kon genoeg video's en hulp vinden voor het maken van het prototype. | https://www.sam-solutions.com/blog/best-frontend-framework/#3 |
CR2 | Ervaring | 7 | We hebben een workshop gehad en het lijkt een beetje op Java. | - |
CR3 | Prestatie | 8 | Angular is snel omdat het gebruik maakt van two way databinding | /blog/best-frontend-framework/#3 |
CR4 | Prototype | 8 | Het heeft iets weg van Java en er bestaat genoeg documentatie | - |
CR5 | Onderhouden | 8 | Angular heeft elke paar maanden weer een nieuwe update. | Meron Brouwer (Nuttshelltalk Angular) |
...
Framework | Punten |
---|---|
React | 79 |
jQuery | 42 |
Angular | 81 |
Vue.js | 71 |
Je ziet al snel dat één framework al door de mand zakt. Dit is jQuery. Dit komt omdat jQuery relatief gezien erg oud is. In vergelijking met de andere frameworks kun je ook niet heel veel vinden. Vue.js heeft net iets minder punten dan Angular en React. Dit komt omdat de syntax op Vue.js niet lijkt op iets dat we eerder gebruikt hebben en het dus ook even gaat duren voor dat we hier bekend mee raken. Tussen React en Angular zitten maar 2 punten verschil. Het voordeel van React is dat het veruit het grootste framework is en je hier dus ook het meeste hulp bij kan vinden. Het voordeel van Angular is dat het meest lijkt op de technieken waar we bekend mee zijn en hier dus snel mee aan de gang kunnen. Ook hebben we hier een workshop over gehad en kunnen we bij eventuele vragen bij Meron Brouwers aankloppen. Een ander voordeel is dat Angular een integratie heeft voor Google Charts die als winnaar uit het onderzoek van de graphs komt Onderzoeksverslag Visuele Dataweergave. Daarom is Angular het antwoord op onze hoofdvraag: "Welk front-end framework past het best bij ons project?"
Bronnen
Angular. (
...
n.d.). Angular. Retrieved November 23, 2022, from https://angular.io/
...
...
endoflife.date. (n.d.). Vue | endoflife.date. Retrieved November 23, 2022, from
...
Patel, J. (2021, November 24). 10 Best Front end Frameworks for Web Development in 2022. Monocubed. https://www.monocubed.com/blog/best-front-end-frameworks/
...
Jelvix. (
...
n.d.)
...
. What Makes React.js Fast: Tools to Optimize the Performance. Retrieved November 23, 2022, from https://jelvix.com/blog/is-react-js-
...
Sakovich, N. (2021, December 10). Best Frontend Frameworks for Web Development of 2021–2022. SaM Solutions. https://www.sam-solutions.com/blog/best-frontend-framework/
...