Skip to content

Latest commit

 

History

History
114 lines (88 loc) · 3.16 KB

File metadata and controls

114 lines (88 loc) · 3.16 KB

← Pagina Inicial

Rotas dinâmicas

1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9

Polindo a página de postagem

Adicionando title à página de postagem

Em pages/posts/[id].js, adicione a tag title usando os dados da postagem. Importe next/head e adicione a tag title:

import Head from 'next/head'

export default function Post({ postData }) {
  return (
    <Layout>
      <Head>
        <title>{postData.title}</title>
      </Head>
      ...
    </Layout>
  )
}

Formatando a data

Para formatar a data, usaremos a biblioteca date-fns. Primeiro, instale-o:

npm install date-fns

Em seguida, crie o componente Date em components/date.js:

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>
}

E use-o em pages/posts/[id].js:

// Add this line to imports
import Date from '../../components/date'

export default function Post({ postData }) {
  return (
    <Layout>
      ...
      {/* Replace {postData.date} with this */}
      <Date dateString={postData.date} />
      ...
    </Layout>
  )
}

Se você acessar http://localhost:3000/posts/pre-rendering, deverá ver a data escrita como "January 1, 2020".

Adicionando CSS

Por fim, vamos adicionar um pouco de CSS. Em pages/posts/[id].js, coloque tudo sob a tag article e use os módulos CSS como abaixo:

// Add this line
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>
  )
}

Se você acessar http://localhost:3000/posts/pre-rendering, a página deverá ficar um pouco melhor:

Ótimo trabalho! Vamos polir a página de índice a seguir e terminaremos!

next-arrow next-arrow

← Pagina Inicial