Optimierung der Beitragsseite

Hinzufügen des title-Tags zur Beitragsseite

In pages/posts/[id].js fügen wir den title-Tag mit den Beitragsdaten hinzu. Dazu müssen Sie oben in der Datei next/head importieren und den title-Tag durch Aktualisierung der Post-Komponente hinzufügen:

// Fügen Sie diesen Import hinzu
import Head from 'next/head';
 
export default function Post({ postData }) {
  return (
    <Layout>
      {/* Fügen Sie diesen <Head>-Tag hinzu */}
      <Head>
        <title>{postData.title}</title>
      </Head>
 
      {/* Behalten Sie den bestehenden Code hier bei */}
    </Layout>
  );
}

Formatierung des Datums

Um das Datum zu formatieren, verwenden wir die Bibliothek date-fns. Installieren Sie sie zunächst:

npm install date-fns

Erstellen Sie dann eine Datei namens components/date.js und fügen Sie die folgende Date-Komponente hinzu:

import { parseISO, format } from 'date-fns';
 
export default function Date({ dateString }) {
  const date = parseISO(dateString);
  return <time dateTime={dateString}>{format(date, 'LLLL d, yyyy')}</time>;
}

Hinweis: Die verschiedenen format()-String-Optionen finden Sie auf der date-fns-Website.

Öffnen Sie nun pages/posts/[id].js, fügen Sie oben in der Datei einen Import für die Date-Komponente hinzu und verwenden Sie sie anstelle von {postData.date}:

// Fügen Sie diesen Import hinzu
import Date from '../../components/date';
 
export default function Post({ postData }) {
  return (
    <Layout>
      {/* Behalten Sie den bestehenden Code hier bei */}
 
      {/* Ersetzen Sie {postData.date} hiermit */}
      <Date dateString={postData.date} />
 
      {/* Behalten Sie den bestehenden Code hier bei */}
    </Layout>
  );
}

Wenn Sie nun http://localhost:3000/posts/pre-rendering aufrufen, sollte das Datum als "January 1, 2020" angezeigt werden.

Hinzufügen von CSS

Abschließend fügen wir etwas CSS mit der zuvor erstellten Datei styles/utils.module.css hinzu. Öffnen Sie pages/posts/[id].js, fügen Sie einen Import für die CSS-Datei hinzu und ersetzen Sie die Post-Komponente durch folgenden Code:

// Fügen Sie diesen Import oben in der Datei hinzu
import utilStyles from '../../styles/utils.module.css';
 
export default function Post({ postData }) {
  return (
    <Layout>
      <Head>
        <title>{postData.title}</title>
      </Head>
      <article>
        <h1 className={utilStyles.headingXl}>{postData.title}</h1>
        <div className={utilStyles.lightText}>
          <Date dateString={postData.date} />
        </div>
        <div dangerouslySetInnerHTML={{ __html: postData.contentHtml }} />
      </article>
    </Layout>
  );
}

Wenn Sie nun http://localhost:3000/posts/pre-rendering aufrufen, sollte die Seite etwas besser aussehen:

Beispiel

Gute Arbeit! Als Nächstes optimieren wir die Indexseite, dann sind wir fertig!

On this page