search icon

Vue CLI – Filer og Templates

Vue-filer (filer, der ender på .vue) er et Vue Component.

Et Vue Component kan indeholde 3 dele.

  • En HTML-template (obligatorisk)
  • Et script, hvor component-objektet eksporteres (optional)
  • Et style-tag, der indeholder de styles, der er til HTML-template i samme component (optional)

I Vue via CDN kan man hurtigt lave et component i selve html-filen, hvor Vue er linket på. Men skal man lave større applikationer med mange components kan det blive uoverskueligt at have det hele i én fil. Her giver det mening at oprette components i filer for at holde styr på indholdet. Et component behøver ikke at være en hel sides layout, men kan i sig selv være et component til et andet component.

Hvis man ikke allerede har et Vue CLI-projekt man kan bruge i det følgende kan man følge guiden til at oprette et projekt i Vue CLI.

Kigger man i det oprettede projekt i src-mappen og åbner filen App.vue kan man se et eksempel på et component. App.vue er ert Vue-component, men er også det component, der bliver loaded som default i filen main.js. Men kigger man i component-filen Vue.app kan man se, at der bruges et andet component med navnet HelloWorld. HelloWorld er et Vue-component i sig selv som ligger i mappen components. Den hentes ind i App.vue med import i <script>-tagget.

Her er Vue-component App.vue

<template>
  <img alt="Vue logo" src="./assets/logo.png">
  <HelloWorld msg="Welcome to Your Vue.js App"/>
</template>

<script>
import HelloWorld from './components/HelloWorld.vue'

export default {
  name: 'App',
  components: {
    HelloWorld
  }
}
</script>

<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

Har man ikke startet en server, der afvikler Vue-projektet kan man gøre dette i en terminal med npm run serve.

Prøv i App.vue, i <template>-tagget at slette det indhold, der i forvejen er der og skriv i stedet <h1>Min første Vue App</h1>. Serveren vil automatisk genloade siden med det nye indhold.

Screenshot af Vue App

I scriptet importeres HelloWorld component og selv det component, der arbejdes i, App, eksporteres. Da HelloWorld ikke længere bruges i denne template kan man fjerne import-linjen samt components-objektet fra scriptet, så scriptet kommer til at se sådan her ud:

<script>
export default {
  name: 'App'
}
</script>

Data-objektet

I et component kan man bruge et data-objekt ligesom i Vue via CDN. I Vue CLI sættes data-objektet ind i scriptet i et component. Man kan så udskrive data i html-template som også i Vue via CDN som vist her:

<template>
  <h1>{{ title }}</h1>
</template>

<script>
export default {
  name: 'App',
  data() {
    return {
      title: "Min første Vue App"
    }
  }
}
</script>

<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

Skriv et svar

Verified by MonsterInsights