Introdução
Neste projeto, você aprenderá como exibir dinamicamente os dados da página inicial usando Vue.js. Este projeto foi projetado para ajudá-lo a entender o processo de obtenção de dados de um arquivo JSON e renderizá-los em um componente Vue.js.
👀 Pré-visualização

🎯 Tarefas
Neste projeto, você aprenderá:
- Como solicitar os dados da lista de posts da página inicial via Axios e vinculá-los ao componente
List.vue. - Como implementar o estilo de layout e o efeito da página inicial para corresponder ao design fornecido.
🏆 Conquistas
Após concluir este projeto, você será capaz de:
- Usar Axios para obter dados de um arquivo JSON.
- Vincular os dados obtidos a um componente Vue.js e renderizá-los no template.
- Estilizar os componentes para corresponder a um design específico.
- Integrar diferentes componentes Vue.js para criar uma página inicial completa.
Configurar a Estrutura do Projeto
Nesta etapa, você configurará os arquivos e a estrutura do projeto. Siga as etapas abaixo para concluir esta etapa:
Abra a pasta do projeto. A estrutura do diretório é a seguinte:
├── public
│ ├── static
│ ├── data
│ ├── list.json
│ ├── images
│ ├── favicon.ico
│ ├── index.html
├── src
│ ├── assets
│ ├── components
│ ├── Header.vue
│ ├── List.vue
│ ├── Recommend.vue
│ ├── router
│ ├── views
│ ├── Home.vue
│ ├── App.vue
│ ├── main.js
└── package-lock.json
└── package.json
└── README.md
Dentre eles:
components/List.vueé o componente da lista de artigos a ser adicionado para este desafio.public/static/data/list.jsoné o arquivo de dados para obter a lista de artigos.public/static/imagesé o arquivo de imagem usado para a lista de artigos.
Em seguida, baixe as dependências usando o comando npm install no terminal, aguarde a conclusão do download das dependências e, em seguida, inicie o projeto usando o comando npm run serve.
Após o projeto iniciar com sucesso, clique em "Web 8080" para visualizá-lo em seu navegador. O efeito de execução da página é mostrado na imagem a seguir.

Conclusão da Função de Exibição da Lista
Nesta etapa, você aprenderá como solicitar os dados da lista de posts da página inicial via axios e vinculá-los ao componente List.vue.
- Abra o arquivo
List.vuelocalizado na pastasrc/components. - Importe a biblioteca
axiosem<script>:
// TODO
import axios from "axios";
- Na função
data(), defina uma propriedadedataListpara armazenar os dados da lista:
data() {
return {
dataList: []
};
}
- No hook de ciclo de vida
created(), chame o métodogetList()para obter os dados da lista:
created() {
this.getList();
}
- Implemente o método
getList()para obter os dados do arquivopublic/static/data/list.json:
methods: {
getList() {
axios.get("./static/data/list.json").then((res) => {
this.dataList = res.data.data.listInfo;
});
}
}
- O código completo dentro de
<script>é o seguinte:
<script>
// TODO
import axios from "axios";
export default {
data() {
return {
dataList: []
};
},
created() {
this.getList();
},
methods: {
getList() {
axios.get("./static/data/list.json").then((res) => {
this.dataList = res.data.data.listInfo;
});
}
}
};
</script>
- No template, use a diretiva
v-forpara renderizar os itens da lista:
<template>
<div class="list">
<!-- TODO -->
<div class="list-item" v-for="item in dataList" :key="item.id">
<img class="list-pic" :src="item.imgUrl" />
<div class="list-info">
<p class="title">{{ item.title }}</p>
<p class="desc">{{ item.desc }}</p>
</div>
</div>
</div>
</template>
Esta etapa garante que os dados da lista de posts da página inicial sejam obtidos do arquivo public/static/data/list.json e vinculados ao componente List.vue.
Seguindo estas etapas, você concluiu a dinamização dos dados da página inicial, incluindo a obtenção dos dados do arquivo public/static/data/list.json e a renderização dos itens da lista no layout desejado.
O efeito concluído é o seguinte:

Resumo
Parabéns! Você concluiu este projeto. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.



