Evento DOMContentLoaded:
document.addEventListener('DOMContentLoaded', () => { fetchUsers(); });
Este trecho de código adiciona um ouvinte de evento que espera até que o conteúdo do DOM (Document Object Model) seja completamente carregado. Quando isso acontece, a função fetchUsers é chamada. Função fetchUsers:
async function fetchUsers() {
try {
const response = await fetch('https://jsonplaceholder.typicode.com/users');
if (!response.ok) {
throw new Error(HTTP error! Status: ${response.status});
}
const users = await response.json();
displayUsers(users);
} catch (error) {
console.error('Erro ao buscar usuários:', error);
}
}
Esta é uma função assíncrona que busca dados de usuários de uma API. fetch é usado para fazer uma solicitação HTTP para a URL fornecida. await é usado para esperar a resposta da solicitação. Se a resposta não for bem-sucedida (response.ok), um erro é lançado. Os dados da resposta são convertidos para JSON e armazenados na variável users. A função displayUsers é chamada com os dados dos usuários. Se ocorrer um erro durante a solicitação, ele é capturado e exibido no console. Função displayUsers:
function displayUsers(users) { const userList = document.getElementById('user-list'); userList.innerHTML = ''; // Limpa a lista existente
users.forEach(user => {
const listItem = document.createElement('li');
listItem.textContent = user.name;
listItem.onclick = () => showUserDetails(user);
userList.appendChild(listItem);
});
}
Esta função recebe um array de usuários e exibe seus nomes em uma lista. userList é o elemento HTML com o ID user-list. userList.innerHTML = ''; limpa qualquer conteúdo existente na lista. Para cada usuário no array, um item de lista (li) é criado e seu texto é definido como o nome do usuário. Um evento onclick é adicionado a cada item de lista para chamar a função showUserDetails quando clicado. O item de lista é adicionado ao elemento userList. Função showUserDetails:
function showUserDetails(user) {
const userDetails = document.getElementById('user-details');
userDetails.innerHTML = <h2>${user.name}</h2> <p>Email: ${user.email}</p> <p>Phone: ${user.phone}</p> <p>Website: <a href="http://${user.website}" target="_blank">${user.website}</a></p> <p>Address: ${user.address.street}, ${user.address.city}</p>;
}
Esta função recebe um objeto user e exibe seus detalhes. userDetails é o elemento HTML com o ID user-details. O conteúdo HTML do userDetails é definido para exibir o nome, email, telefone, website e endereço do usuário. Espero que isso ajude a entender o funcionamento do código! Se tiver mais dúvidas, estou aqui para ajudar.