<aside> <img src="/icons/arrow-northeast_gray.svg" alt="/icons/arrow-northeast_gray.svg" width="40px" />
Índice
</aside>
<aside> <img src="/icons/notion_green.svg" alt="/icons/notion_green.svg" width="40px" />
Conteúdos
Anatomia de um componente .vue
Interpolação e reatividade com ref e computed
Diretivas: v-bind, v-on, v-if, v-for e v-model
Criando o projeto Gumball Verse
Primeira requisição com useFetch
Layout, base do projeto e nuxt.config.ts
Consumindo a API nas listagens
Páginas de detalhes com rotas dinâmicas
Tratando o erro 404 com createError
Títulos das páginas com useHead
Filtros, paginação e busca com debounce
Desafio: título e favicon dinâmicos
</aside>
Chegou a hora de colocar em prática o que você aprendeu! Este desafio usa o useHead, que vimos algumas páginas atrás, mas agora com dados dinâmicos vindos da API.
<aside> 🏆 Deixe dinâmicos o título e o ícone das páginas de detalhes. Na página de um personagem ou de um lugar, a aba do navegador deve mostrar o nome dele no título e usar a imagem dele como favicon.
</aside>
Por exemplo, ao acessar a página do Gumball, a aba deve mostrar o título Gumball | Gumball Verse e a imagem do Gumball como ícone.
Os arquivos que você vai alterar são:
app/pages/characters/[id].vueapp/pages/locations/[id].vueuseHead depois do tratamento de erro. Assim, você tem certeza de que os dados existem;data.value.name. Lembre-se: no script, o data precisa do .value;type do ícone muda.<aside>
💡 Tente resolver sozinho antes de abrir a resposta! Se travar, releia a página sobre o useHead e a configuração do favicon no nuxt.config.ts.
</aside>
Pronto! Com o desafio concluído, o Gumball Verse está completo. Na próxima página, vamos recapitular tudo o que construímos e ver quais são os próximos passos.