1
resposta

Logica do Contador e Evento

Não entendo a logica de se ter um contador, se é um formulário e o usuário ficará cadastrando manualmente os seus campos. Porque preciso de um contador para guardar em cache os IDs?

Outro ponto é, se um desenvolvedor alterar o nome da função que esta vinculada ao evento "onclick" por exemplo no JS, não terá que ser alterado no HTML do mesmo jeito?

Achei esta funcionalidade não funcional e irá gerar retrabalho do mesmo jeito.

1 resposta

Fala ai Alan, tudo bem? Vamos lá:

Não entendo a logica de se ter um contador, se é um formulário e o usuário ficará cadastrando manualmente os seus campos. Porque preciso de um contador para guardar em cache os IDs?

A necessidade de ter uma variável contador é para guardar o valor atual da sua contagem, pois sempre quando incrementar algo, você precisa pegar o valor atual e somar + 1.

Sim, poderia ser feito sem o contador, poderíamos ler o conteúdo da página, parsear para inteiro e incrementar, algo do tipo:

incrementa() {
    const p = document.querySelector('#p1')
    p.textContent = parseInt(p.textContent, 10) + 1;
}

Mas, cada um prefere fazer de um jeito, eu particularmente prefiro o jeito com a variável contador.

Outro ponto é, se um desenvolvedor alterar o nome da função que esta vinculada ao evento "onclick" por exemplo no JS, não terá que ser alterado no HTML do mesmo jeito?

Sim, se você trocar o nome da função vai precisar atualizar o HTML, você poderia fazer o bind do evento no constructor da sua classe:

constructor() {
        this._contador = 0;
        alert(this._contador);
    const btn = document.querySelector(SELETOR)
    if (btn) {
        btn.addEventListener('click', this.incrementa)
    }
}

Algo mais ou menos assim, porém, seu JavaScript vai precisar buscar elemento na página, isso vai consumir mais tempo, processamento e memória da máquina.

De novo, vai muito do gosto pessoal de cada um. Nesse exemplo eu prefiro fazer através do JavaScript a associação do evento.

Espero ter ajudado.