Overzicht

Vue.js is een progressief JavaScript-framework voor het bouwen van gebruikersinterfaces. Het is ontworpen om incrementeel adopteerbaar te zijn en richt zich op de view-laag, waardoor het gemakkelijk te integreren is met andere bibliotheken of bestaande projecten.

Voordat je begint
Zorg ervoor dat je dashboard geopend is - je hebt de daar getoonde Git-inloggegevens nodig. Dit sjabloon bevat Vue 3, Tailwind CSS 4, Pinia voor state management en Vue Router.

Snelstart

1

Repository aanmaken vanuit sjabloon

Ga in je dashboard naar het tabblad Tools & Deployment. Klik op de knop "New Repository", selecteer het Vue.js-sjabloon uit het dropdownmenu, voer een repository-naam en subdomein in en klik vervolgens op "Create Repository".

2

Je repository klonen

git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
3

Afhankelijkheden installeren

npm install
4

Ontwikkelingsserver starten

npm run dev

Open http://localhost:4200 in je browser.

5

Bouwen & pushen

npm run build
git add .
git commit -m "Initial setup"
git push origin main
Elke push naar Git implementeert automatisch je applicatie. Bekijk je Module Work URL op het dashboard om je live site te zien.

Lokale ontwikkeling met Docker

Als je geen Node.js lokaal hebt geïnstalleerd, kun je Docker gebruiken om Vue-commando's uit te voeren. Het project bevat een Dockerfile voor productiebuilds met nginx.

Wat is Docker?
Docker maakt geïsoleerde "containers" met alle software die je nodig hebt (Node.js, npm) zonder ze op je computer te installeren. Zie het als een lichtgewicht virtuele machine.

Vereisten

Installeer Docker Desktop voor jouw besturingssysteem (Windows, Mac of Linux).

Commando's uitvoeren met Docker

# Run npm install
docker run --rm -v $(pwd):/app -w /app node:lts-alpine npm install

# Run development server (accessible at localhost:4200)
docker run --rm -v $(pwd):/app -w /app -p 4200:4200 node:lts-alpine npm run dev

# Build for production
docker run --rm -v $(pwd):/app -w /app node:lts-alpine npm run build
Opmerking
Docker is optioneel voor lokale ontwikkeling. Het NStrim-platform handelt de implementatie automatisch af - je hebt Docker alleen nodig als je commando's lokaal wilt uitvoeren zonder Node.js geïnstalleerd te hebben.

Projectstructuur

Begrijpen waar bestanden zich bevinden:

├── src/
│   ├── assets/               # Statische assets (afbeeldingen, fonts)
│   ├── components/           # Vue-componenten
│   ├── views/                # Paginacomponenten
│   ├── router/               # Vue Router-configuratie
│   ├── stores/               # Pinia-stores
│   ├── App.vue               # Hoofdcomponent
│   └── main.js               # Applicatie-startpunt
├── public/                   # Publieke statische bestanden
├── index.html                # HTML-startpunt
├── vite.config.js            # Vite-configuratie
├── package.json              # Afhankelijkheden en scripts
└── Dockerfile                # Docker build-configuratie
        

Veelvoorkomende taken

Een component aanmaken

Maak .vue-bestanden in src/components/:

<!-- src/components/Button.vue -->
<script setup>
defineProps({
  label: String
});

const emit = defineEmits(['click']);
</script>

<template>
  <button
    class="bg-blue-500 text-white px-4 py-2 rounded"
    @click="emit('click')"
  >
    {{ label }}
  </button>
</template>

Een route toevoegen

Bewerk src/router/index.js:

import { createRouter, createWebHistory } from 'vue-router';
import Home from '../views/Home.vue';
import About from '../views/About.vue';

const router = createRouter({
  history: createWebHistory(),
  routes: [
    { path: '/', component: Home },
    { path: '/about', component: About }
  ]
});

export default router;

Pinia-store gebruiken

Maak een store in src/stores/:

// src/stores/counter.js
import { defineStore } from 'pinia';

export const useCounterStore = defineStore('counter', {
  state: () => ({ count: 0 }),
  actions: {
    increment() { this.count++ },
    decrement() { this.count-- }
  }
});

Tailwind CSS gebruiken

Tailwind CSS 4 is vooraf geconfigureerd. Gebruik klassen direct in je templates:

<div class="bg-blue-500 text-white p-4 rounded-lg">
  Hello Tailwind!
</div>

Handige commando's

npm run dev Ontwikkelingsserver starten (poort 4200)
npm run build Bouwen voor productie
npm run preview Productiebuild lokaal previewen
npm run test:unit Unit-tests uitvoeren met Vitest
npm run lint Codestijl controleren en oplossen
npm run format Code formatteren met Prettier

Probleemoplossing

npm install fails with permission errors

Oorzaak: Permissieproblemen met de npm-cache of node_modules.

Oplossing: Verwijder de map node_modules en package-lock.json, en voer dan npm install opnieuw uit.

Port 4200 already in use

Oorzaak: Een ander proces gebruikt poort 4200.

Oplossing: Gebruik een andere poort: npm run dev -- --port 3000 of stop het andere proces.

Component not updating

Oorzaak: Reactiviteit niet correct opgezet.

Oplossing: Gebruik ref() voor primitieven en reactive() voor objecten. Toegang tot ref-waarden met .value in script, maar niet in template.

Router not working

Oorzaak: RouterView niet in App.vue of router niet geregistreerd.

Oplossing: Zorg ervoor dat <RouterView /> in App.vue staat en dat de router wordt toegevoegd met app.use(router) in main.js.

Build fails after deployment

Oorzaak: Build-fouten of ontbrekende afhankelijkheden.

Oplossing: Voer eerst lokaal npm run build uit om op fouten te controleren voordat je pusht.

Implementatie-workflow

Elke keer dat je code naar Git pusht, wordt je applicatie automatisch gebouwd en geïmplementeerd:

Codewijziging git push npm run build Implementeren naar nginx Live!

De URL van je geïmplementeerde applicatie volgt dit formaat:

https://<your-subdomain>-<repo-name>.<session-domain>

Voorbeeld: https://student01-module-a.demo.nstrim.app

Voor meer informatie kun je de officiële Vue.js-documentatie raadplegen.