AngularJS oder Angular 2?

  • AngularJS oder Angular 2?

    Hallo

    Ich frage mich gerade ob ich AngularJS oder Angular 2 verwenden sollte oder doch jQuery. Ich wollte mir Angular 2 Anfangen. Hab dann aber recht schnell gemerkt, dass es für mich sehr viele Unbekannte hat. Informationen dazu kann man leider auch nicht viele finden. Bin dann auf 1.5.8 und habe damit mein Ziel erreicht. 2 Tage später war ich aber damit unzufrieden, weil ich es mit "alter Technik" gemacht habe und nicht auf dem neusten Stand.
    Für Angular findet man schon ausreichend Informationen um sich einarbeiten zu können. Bei Angular 2 jedoch gibt es nichts für echte Einsteiger. Selbst der angular-seed auf Github ist für einen echten Einsteiger "nutzlos". Natürlich läuft es, wenn man der Anleitung folgt. Aber einer Anleitung folgen hat nichts mit lernen und verstehen zu tun.

    Es gibt unendlich viele Imports, wovon nicht einer erklärt wird. import {LocationStrategy, HashLocationStrategy} from '@angular/common'; Bitte was? Natürlich kann man sich irgendwo über 3 Ecken vorstellen, was hier passiert. Aber deshalb versteht man es ja noch nicht. Wann brauche ich es, wo brauche ich es, wie muss ich es wann wo laden?

    Und woher kommt die ganze Magie hinter dem laufendem Node-Server? Super, ich soll localhost:3000 aufrufen. Wie der Server erstellt wird, welche routes verfügbar sind und wo die erstellt werden, wird auch nicht erklärt. Einfach ein "Friss oder stirb".

    Gerne würde ich mich in Angular 2 einarbeiten als weiter mit 1.5 zu lernen. Aber ich finde immer nur die gleichen oberflächlichen Informationen.

    Sollte ich mit 1.5 weiter machen und auf brauchbare Quellen warten oder gibt es irgendwo ordentliche Tutorials?
    Oder gibt es gar bessere Alternativen zu Angular für SPA?
  • Ich bin kein wirklicher Freund von Angular. Zur Zeit von Angular 1 habe ich immer Knockout bevorzugt und heute würde ich Aurelia den Vorzug vor Angular 2 geben.
    Zur Übersicht hier noch ein (zugegeben sehr parteiisches) Video.


    MaxDau schrieb:

    Es gibt unendlich viele Imports, wovon nicht einer erklärt wird. import {LocationStrategy, HashLocationStrategy} from '@angular/common'; Bitte was?
    Das kommt aus dem ESM(ES-Module)-Standard (native Module für JS). Bisher sind die nur in Edge und Chrome umgesetzt und mein meist erwartetes Feature für Node. Nach dem "from" steht eigentlich der Dateipfad und das @ gehört da nicht hin. Angular scheint da irgend eine Form von Register zu verwenden.

    Nach Common-JS übersetzt würde da soviel stehen wie: const {LocationStrategy, HashLocationStrategy} = require('angular/common') (lege die Konstanten LocationStrategy und HashLocationStrategy an und weise ihnen die gleichnamigen properties aus der Datei angular/common zu)

    Siehe hierzu auch hier.
  • Danke, ich habe mir schon etwas ähnliches gedacht. Aber Angular2 ist einfach absolut nichts für JS-Einsteiger. Ich kann mir auch vorstellen was *webpack* macht. Aber es gibt einfach wirklich viel, was über "normales" JS hinaus geht und den Einsteig in Angular2 extrem schwer macht.
    BTW: das @ ist richtig, da der Ordner auch @angular heißt.

    Was wäre denn eine Einsteiger freundliche Alternative?
    Habe mir nur einen groben Überblick verschafft. Aber jeder sagt einem was Anderes.
    - RIOT
    - VUE.js
    - Ember (wird häufig fürs Routing und die API gelobt)
    - React (gefällt mir weniger, da keine Trennung von HTML/JS)
    - Aurelia (hab mich noch nicht eingelesen)
    - Mithril (steht noch auf meiner ToDo)
    - Backbone (steht noch auf meiner ToDo)

    Mich spricht auf Anhieb Ember an, hat aber mMn. mit knapp 70kb zu viel Gewicht.
    Gibt es denn eine Empfehlung von euch? Sollte DAU geeignet sein ;)
  • MaxDau schrieb:

    Ich kann mir auch vorstellen was *webpack* macht.
    Webpack verpackt die vielen kleinen Dateien der modernen Modul basierenden Frameworks in eine Datei, die dann vom Browser bezogen werden kann.

    Bei allen modernen Frameworks bist du noch auf einen Bundler (wie Webpack) oder einen Loader (wie SystemJS) angewiesen, da Browser ESM noch nicht unterstützen.



    Vue scheint nicht schlecht zu sein (hab es aber selber nie benutzt). Ember kann ich dir empfehlen, hat aber eine gewisse Lernkurve.

    Zu Aurelia: Wie Ember versucht Aurelia dir den Umgang und Einstieg mit einem CLI möglichst zu vereinfachen. Zusätzlich gibt es aber auch eine Electron-App, die eine GUI-Version des CLI darstellt. Der Fokus von Aurelia besteht darin immer Standard-Konform zu sein. Es implementiert neuste Features und APIs, wie WebComponents und ES2018. Nachdem du den Code zum initialisieren der App geschrieben hast, kommt es dir so vor als wäre gar kein Framework vorhanden. Es steht nie im Weg und kommt nur selten mal zum Vorschein. Beim Einlernen lernst du weniger Aurelia selbst, als vielmehr "next JS". Wenn du schon ES6/2015 und evtl. auch schon Features bis ES2017 gelernt hast, ist der Einstieg ziemlich einfach. Daher mein Favorit.
  • ebelmxi schrieb:

    Ich kenne wiederum Aurelia nicht, kann dir aber zu Angular 2 die angular-cli empfehlen. Das Tool erzeugt dir eine Projektstruktur und du kannst damit Komponenten, Services, Pipes, ... erstellen und dabei werden die Imports weitgehend automatisch erledigt.
    Ich frage mich ob mir das beim Lernen hilft oder eher dazu führt, dass unsichere und schlechte Apps erzeugt werden

    Edit:
    Sollte man denn noch neue Projekte mit Angular 1.5.8 machen oder auf 2.0 (andere Frameworks) umsteigen?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von MaxDau ()