Gente, se puderem ajudar, ficarei muito feliz. Estava entendendo tudo até o módulo 3 item 3, quando rola a refatoração do código para o navegador criar os elementos armazenados no localStorage e mostrar na tela quando a gente recarrega.
minha dúvida é no código:
itens.forEach((elemento) => {
criaElemento(elemento);
})
eu entendo que no trecho:
form.addEventListener('submit', (evento) => {
evento.preventDefault();
const nome = evento.target.elements['nome'];
const quantidade = evento.target.elements['quantidade'];
const itemAtual = {
'nome': nome.value,
'quantidade': quantidade.value
};
criaElemento(itemAtual);
itens.push(itemAtual)
localStorage.setItem('itens', JSON.stringify(itens));
nome.value = "";
quantidade.value = "";
});
ele pega os valores de nome do item e quantidade do item, cria um 'itemAtual' e depois joga ele dentro do array e zera os campos do formulário após o evento.
Mas da onde raios ele sabe o que tem dentro de 'elemento'? EU não consigo enxergar como isso resulta em um novo item sendo criado no HTML, já que não criamos uma var que atribuí valores para o 'elemento' usado dentro de criaElemento.
Edit: relendo o código, seria algo como: ele cria um elemento para cada item dentro da 'const itens' que é a responsável por lidar com o array do localStorage, mas mesmo assim, como ele sabe que 'elemento' é composto por um nome.value e um quantidade.value ? Eu entendi que criamos uma const que popula com um nome.value e uma quantidade.value nosso array (const itemAtual, mas como o bendito elemento faz o caminho inverso?
Entendo que talvez me falta background em JS para entender isso (por isso estou tbm fazendo a trilha de JS para back-end), mas se alguém puder me explicar de uma forma mais didática, agradeço.
Abraços a todos!