Nuxt3 mit Vuetify 3 – Teil 3: Entwickeln in Vue / Typescript

image_pdfimage_print

Typescript muss in VS Code installiert werden. -g steht fĂĽr globally (Alle Projekte)

Typescript Version prĂĽfen

 

Enums

Objekte werden mit reactive<type>({…}) reactiviert und primitive Datentypen mit ref<string>(…)

Mixins werden in eine Vue Instanz hinzugefügt. So als würde man 2 Vue Instanzen verschmelzen. Composables sind dem ähnlich. In Mixins wird alles importiert, bei Composables muss jede Variable, Methode, etc. einzeln importiert werden.

Guter Artikel dazu:

What is a Vue.js Composable? – Vue.js Tutorials (vueschool.io)

 

0  

Nuxt3 mit Vuetify 3 – Teil 2: Layout

image_pdfimage_print

Wenn man durch eine App navigiert, dann ist der Seitenaufbau überall identisch. Das Menü, die Kopfzeile und Fusszeile sind auf jeder Seite identisch. Lediglich der Inhalt ändert sich.

In Nuxt 3 werden Layouts im “layouts”-Ordner erstellt und anschlieĂźend in die app.vue hinzugefĂĽgt. Einzelne Seiten werden im “pages”-Ordner erstellt.

Nuxt 3 routet die pages anhand des Namens. Nur die page “index.vue” wird zum root Knoten geroutet.

Also erstellen wir ein Verzeichnis “layouts” und ein Verzeichnis “pages”.

In das “layouts” Verzeichnis, eine Datei erstellen “default.vue”.

und folgenden Inhalt kopieren:

Dort, wo <slot /> steht, kommt der Inhalt der einzelnen Pages hinein.

Jetzt in das Verzeichnis “pages”

die Datei index.vue mit folgenden Inhalt

und die Datei “pageOne.vue” mit folgenden Inhalt erstellen

In der app.vue mĂĽssen wir nun sagen, dass wir nicht mehr die Nuxt Welcome page sehen wollen, sondern unser Layout:

 

0  

Nuxt3 mit Vuetify 3 – Teil 1: Installation

image_pdfimage_print

Wenn man aus der Microsoft Welt kommt und Webseiten mit JQuery  bearbeitet hat, dann sind UI Framworks wie Vue eine wahre Veränderung. In meiner ASP WebApp habe ich Vue2 über CDN eingebunden und Vue anstatt JQuery genutzt. Vue funktioniert aber am besten mit NodeJs. Der Versuch NodeJs zu erlernen verlief aber immer in Frust. Weil es keinen roten Faden gibt, wie etwas umgesetzt werden kann. Es gibt keinen besten Weg. Es gibt sehr viele neue Begriffe und Definitionen, die Stück um Stück erlernt werden müssen. Es ist definitiv ein anderes lernen wie eine erprobte Sprache wie C# oder Java.

Deshalb ist hier mein roter Faden. Ziel soll am eine App sein, die folgende Punkte mit sich bringt:

  1. Nuxt 3 als Wrapper ĂĽber Vue3. Nuxt 3 schafft eine Ordnerstruktur und macht die imports z.B. ĂĽberflĂĽssig.
  2. Vuetify 3 Beta. Zwar ist es noch in Beta Phase, aber es wird das beste UI Framework (Meiner Meinung nach)
  3. Typescript: Die App soll in Typescript geschrieben sein
  4. Pinia wird unser Statemanagement anstatt Vuex
  5. Ăśbersetzungen werden ĂĽber i18n realisiert
  6. Daten werden ĂĽber externe .NET 6 Minimal Api mit Swagger abgerufen
  7. Authorisierung erfolgt ĂĽber eine ASP .NET 6 Proxy Anwendung

Read more »

0  

Template parsen in C#

image_pdfimage_print

Ok habe ich mir gedacht. Es wird ja wohl nicht so schwer sein folgenden Code zu parsen und die Templates entsprechend zu ersetzen:

vue.js oder mustache verwendet eine ähnliche Syntax.

Ich könnte an dieser Stelle mustache für C# verwenden und er würde mir das Template ersetzen, allerdings benötige ich nicht nur das Ergebnis als String sondern ich möchte bei jedenm Iterationsaufruf eingreifen können.

Bisher habe ich mir folgende Tools angeschaut:

Leider ist Sprache sehr schlecht  dokumentiert und es fehlen Beispiele wie man das umsetzen könnte. Dennoch würde ich es gerne bevorzugen.

0  

Vue – Konstanten definieren

image_pdfimage_print

Konstanten kann man in Vue einfach im Created Hook definieren.

Generell sollte man sich das Arbeiten mit Konstanten angewöhnen.

if(UserTypeId == 7) {…} stellt den Entwickler vor die Frage, was an diesen UserType nun so besonders ist.

Besser: if(UserTypeId == USERTYPE_GUEST) . So weiĂź jeder, die folgende Logik betrifft den Gastbenutzer

 

0  

Vue – Directive

image_pdfimage_print

Mal angenommen man möchte alle Felder auf einer Seite deaktivieren. Man könnte input fĂĽr input durchgehen und mit :disabled=”isEditable” das Feld deaktivieren.
Oder man schreibt eine Custom Directive, die diese Logik abbildet: https://vuejs.org/v2/guide/custom-directive.html

Möchte man das global haben:

Oder per Instanz:

Eingebunden wird das nun mit.

oder

oder ohne Bedingung

 

0  

Cmd Pfad autocomplete funktioniert nicht

image_pdfimage_print

Cmd öffnen

Befehle eingeben
Cmd neustarten und mit cd Tab den Pfad autocompleten lassen 🙂

0  

Applikationsdesign: Datensätze abarbeiten nach Punktesystem

image_pdfimage_print

Mir kam mal folgende Problemstellung in die Gedanken:

Mal angenommen ich muss unterschiedliche Aufgaben abarbeiten. Diese befinden sich in einer Warteschleife. So dass sie nacheinander oder auch asynchron parallel abgearbeitet werden sollen.

Jede Aufgabe besitzt eine Priorität. Sagen wie 1 (unwichtig) – 10 (sehr wichtig). In die Warteschleife kommen immer wieder Aufgaben nach. Das Problem ist, es werden die sehr wichtigen immer zuerst abgearbeitet. Die weniger wichtigen kommen daher nie dran und werden nie verarbeitet. Die Lösung ist ein Punktesystem mit Zeitangabe. Die Priorität ist dient dann als Faktor und wird mit der Anzahl Minuten multipliziert. Das ergibt die Summe der Punkte pro Datensatz

Beispiel: Es ist Momentan 12:00 Uhr Mittags.

  1. Datensatz 1: Prio 4, HinzugefĂĽgt um: 11 Uhr, Punkte: 4 * 60 = 240
  2. Datensatz 2: Prio 9, HinzugefĂĽgt um: 8 Uhr, Punkte: 9 * 240 = 2160
  3. Datensatz 3: Prio 2, HinzugefĂĽgt um: 4 Uhr, Punkte: 2 * 480 = 960

Sortiert man diese Liste nun nach Punkten ergibt sich eine neue Reihenfolge

  1. Datensatz 2: Prio 9, HinzugefĂĽgt um: 8 Uhr, Punkte: 9 * 240 = 2160
  2. Datensatz 3: Prio 2, HinzugefĂĽgt um: 4 Uhr, Punkte: 2 * 480 = 960
  3. Datensatz 1: Prio 4, HinzugefĂĽgt um: 11 Uhr, Punkte: 4 * 60 = 240

So hat jeder Datensatz eine Chance drangenommen zu werden. Je länger er in der Warteschleife verweilt, desto höher wird sein Punktesatz.

0  

system-versioned temporal tables oder automatische Historie auf Tabellenbasis

image_pdfimage_print

funktioniert ab SQL Server 2016

 

 

0  

SQL Column löschen inkl. aller Constraints

image_pdfimage_print

 

0