HTML5-Tutorium: JavaScript: Hello World Vue 01: Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Kowa (Diskussion | Beiträge)
Die Seite wurde neu angelegt: „{{HTML5-Tutorium:JavaScript:HelloWorld:Menü}} '''Musterlösung'''<br/> [{{Git-Server}}/kowa/wk_hello_world_vue Git-Repository], <code>git checkout v01</code>…“
 
Kowa (Diskussion | Beiträge)
Zeile 67: Zeile 67:


== Überführung von <code>hello-world-06</code> nach vue ==
== Überführung von <code>hello-world-06</code> nach vue ==
<source lang="bash">
git checkout -b v01  # neuen Git-Zweig (branch) anlegen
npm i -D sass        # sass aktivieren
.gitignore            # ansehen
LICENSE              # wird aus einem anderen Projekt kopiert
package.json          # mit package.json von hello_world_06 mergen
vite.config.js        # mit vite.config.js von hello_world_06 mergen
                      # Ausnahmen: root, publicDir, und outDir
index.html            # title anpassen, head.css importieren
src/css              # Ordner von hello_world_06 übernehmen
src/App.vue          # <style lang="scss">
                      #  @import '@/css/body.scss'
                      # </style>
public                # favicon ersetzen
README.md            # ansehen und verbessern
npm run dev          # Vite-Server neu starten
</source>
'''Tipp'''<br/>
Wenn Sie Code von mir verwenden, sollten Sie
  "no-unexpected-multiline": false
in das "env"-Objekt in der Datei exlintrc.cjs nach Zeile 10 einfügen:
<source lang="javascript">
"env":
{ "vue/setup-compiler-macros": true,
  "no-unexpected-multiline":  false,
}
</source>
'''Achtung'''<br/>
Um relative Pfade beim Building zu erzwingen, reicht es nicht, die Option „base: '' “ in vite.config.js einzufügen. Sie müssen dies zusätzlich in vue.config.js festlegen:
<source lang="javascript">
import { defineConfig } from '@vue/cli-service'
export default defineConfig ({ publicPath: '' })
</source>

Version vom 18. April 2023, 07:29 Uhr

Dieser Artikel erfüllt die GlossarWiki-Qualitätsanforderungen nur teilweise:

Korrektheit: 3
(zu größeren Teilen überprüft)
Umfang: 4
(unwichtige Fakten fehlen)
Quellenangaben: 3
(wichtige Quellen vorhanden)
Quellenarten: 5
(ausgezeichnet)
Konformität: 3
(gut)

Vorlesung WebProg

Inhalt | Teil 1 | Teil 2 | Teil 3 | Teil 4 | Teil 5 | Teil 6 | Vue 1 | Vue 2 | Vue 3 | Vue 4 | Vue 5 | Vue 6

Musterlösung
Git-Repository, git checkout v01 (JavaScript)
Git-Repository (TypScript), git checkout v01

Anwendungsfälle (Use Cases)

Gegenüber dem dritten, vierten, fünften und sechsten Teil des Tutoriums ändern sich die die Anwendungsfälle nicht. Die Anwendung leistet also genau dasselbe wie zuvor.

In diesem Teil geht es zunächst darum, die Lösung aus Teil 6 des Tutoriums mit vue zu realisieren

Erstellen eines neuen Projekts

Erstellen Sie ein neues Projekt hello_world_vue:

cd <somewhere>

npm init vue@latest
  Ok to proceed? (y)
  Project name: » hello_world_vue
  Add TypeScript? » No (Yes mittels Tab-Taste)
  Add ESLint for code quality? » Yes

cd hello_world_vue
npm install
npm run dev  # Im Browser: http://localhost:5173/

# Linefeed ändern (unter Windows => Unix-Zeilenende)
cat <<EOF > .vscode/settings.json
{ "files.eol": "\n" }
EOF
# VLC (neu) starten, damit settings.json gelesen wird
# und Terminal für das Projekt öffnen

# initialize git
git init
git add -A
git commit -m "initial commit"

git remote add origin https://gitlab.multimedia.hs-augsburg.de/ACCOUNT/hello_world_vue
git remote -v
git push --set-upstream origin master

# create a new git branch
git checkout -b v00
git push --set-upstream origin v00

Anmerkungen

Vue ist ein Framework zum Erstellen von Single-Page-Web-Anwendungen. Allerdings gibt es eine Router-Erweiterung: Multi-Page-Web-Anwendungen.

Vue basierte bis Version 3.0 auf Webpack. Webpack gilt allerdings schon wieder als Dinosaurier (existiert seit 2012)

Seit Version 3.2. verwendet Vue Vite (französisch „schnell“). Dies hat zur Konsequenz, dass das Initialisieren und Testen einer Vue-Anwendung anders erfolgt als früher.

Vue 3 unterstützt im Gegensatz zu Vue 2 TypeScript. Daher verwenden wir auch TypeScript.

Vue-Anwendungen sind aus Komponenten aufgebaut. Das passt sehr gut Atomic-Design-Prinzip.

Überführung von hello-world-06 nach vue

git checkout -b v01   # neuen Git-Zweig (branch) anlegen
npm i -D sass         # sass aktivieren

.gitignore            # ansehen
LICENSE               # wird aus einem anderen Projekt kopiert
package.json          # mit package.json von hello_world_06 mergen
vite.config.js        # mit vite.config.js von hello_world_06 mergen
                      # Ausnahmen: root, publicDir, und outDir
index.html            # title anpassen, head.css importieren
src/css               # Ordner von hello_world_06 übernehmen
src/App.vue           # <style lang="scss">
                      #   @import '@/css/body.scss'
                      # </style>
public                # favicon ersetzen
README.md             # ansehen und verbessern

npm run dev           # Vite-Server neu starten

Tipp
Wenn Sie Code von mir verwenden, sollten Sie

 "no-unexpected-multiline": false

in das "env"-Objekt in der Datei exlintrc.cjs nach Zeile 10 einfügen:

"env":
{ "vue/setup-compiler-macros": true,
  "no-unexpected-multiline":   false,
}

Achtung
Um relative Pfade beim Building zu erzwingen, reicht es nicht, die Option „base: “ in vite.config.js einzufügen. Sie müssen dies zusätzlich in vue.config.js festlegen:

import { defineConfig } from '@vue/cli-service'

export default defineConfig ({ publicPath: '' })