Komponenten
In dieser Aufgabe erstellst du eigene Komponenten und definierst Properties.
Aufgabenstellung
Du entwickelst einen Newsfeed für eine Onlinezeitung. Die Daten werden dir später von einem Backend bereitgestellt. Du erhältst den Titel, einen kurzen Textausschnitt (Teaser) sowie die gesamte Anzahl Wörter eines jeden Newsbeitrags.
Lösungsschritte
Verwende folgenden Vue Playground als Startpunkt für deine Lösung:
Komponente extrahieren
Das .newsfeed__item Element ist aktuell drei Mal im HTML vorhanden. Es soll noch an zahlreichen anderen Orten auf der Website des Kunden verwendet werden. Deshalb macht es Sinn, dieses HTML in eine eigene Komponente auszulagern.
Properties definieren
Alle NewsfeedItem zeigen aktuell den selben Inhalt an. Wir brauchen Properties, um den Inhalt dynamisch bestimmen zu können.
Stelle sicher, dass für jede Property nur den erwarteten Datentyp akzeptiert wird
Setze für jedes
<NewsfeedItem>Element in derApp.vuedie neu erstellten Properties mit BeispielinhaltenGebe die Werte der Properties im
<template>Bereich derNewsfeedItem.vuean der richtigen stelle aus.
Liste rendern
Im App.vue soll die Liste von NewsfeedItem nun dynamisch generiert werden.
Füge die folgende
itemsVariable im<script setup>Bereich deinerApp.vueein
Nutze die
itemsVariable um eine Liste vonNewsfeedItemzu generierenStelle sicher, dass die
NewsfeedItemdie Inhalte aus deritemsVariable als Properties erhalten und anzeigen.
Lesezeit berechnen
Für jeden Newsbeitrag wissen wir, wie viele Wörter im Inhalt sind. Wir gehen von einer durchschnittlichen Lesegeschwindigkeit von 300 Wörtern pro Minute aus.
Berechne anhand der
numberOfWordsProperty, wie lange die Lesezeit für den angezeigten Newsbeitrag ist. Du kannst die Lesezeit auf volle Minuten runden.Zeige die berechnete Lesezeit an.