Maison > Article > interface Web > Éléments personnalisés libérés : utilisez customElements.define() et .get() comme un Jedi du Front-end !
Hé, les développeurs ! Prêt à percer les secrets de l'univers Custom Elements ? Aujourd'hui, nous allons approfondir les pouvoirs de customElements.define() et customElements.get() - les armes secrètes que tout Jedi frontal doit maîtriser !
Imaginez que vous êtes un scientifique fou du front-end et que vous souhaitez créer votre propre créature HTML. C'est là qu'intervient customElements.define(). C'est comme cette machine de clonage Mewtwo, mais pour les éléments Web !
class ElementoTopzera extends HTMLElement { constructor() { super(); this.innerHTML = `<p>Eu sou incrível e customizado!</p>`; } } customElements.define('elemento-topzera', ElementoTopzera);
Vous pouvez désormais utiliser votre élément comme s'il était natif en HTML :
<elemento-topzera></elemento-topzera>
BOUM ! ? Vous venez de créer la vie... dans les DOM !
class BotaoContador extends HTMLElement { constructor() { super(); this.count = 0; this.innerHTML = ` <button>Cliques: <span>0</span></button> `; this.addEventListener('click', () => { this.count++; this.querySelector('span').textContent = this.count; }); } } customElements.define('botao-contador', BotaoContador);
class CardPerfil extends HTMLElement { constructor() { super(); const nome = this.getAttribute('nome') || 'Dev Anônimo'; const skill = this.getAttribute('skill') || 'Café++'; this.innerHTML = ` <div style="border: 2px solid #333; padding: 10px; margin: 10px;"> <h2>${nome}</h2> <p>Skill Suprema: ${skill}</p> </div> `; } } customElements.define('card-perfil', CardPerfil);
Utilisez-le comme ceci, regardez :
<card-perfil nome="ZézimDev" skill="Bug Hunter"></card-perfil>
Maintenant, que se passe-t-il si vous souhaitez vérifier si un élément personnalisé existe déjà ? C'est là qu'intervient customElements.get() - le détective privé du monde des composants Web !
const ElementoTopzera = customElements.get('elemento-topzera'); if (ElementoTopzera) { console.log('Elemento encontrado! Hora do show!'); // Faz alguma mágica aqui } else { console.log('404 Elemento Not Found'); }
function carregaComponenteSeNecessario(nomeElemento) { if (!customElements.get(nomeElemento)) { import(`./components/${nomeElemento}.js`) .then(() => console.log(`${nomeElemento} carregado e pronto pra ação!`)) .catch(err => console.error(`Oops, deu ruim ao carregar ${nomeElemento}`, err)); } } carregaComponenteSeNecessario('super-tabela');
function elementoSeguro(nomeElemento) { const elemento = customElements.get(nomeElemento); if (elemento && elemento.prototype instanceof HTMLElement) { console.log('Elemento verificado e aprovado! ?'); return true; } console.warn('Elemento suspeito detectado! ?'); return false; } elementoSeguro('botao-contador'); // true, se definido anteriormente elementoSeguro('virus-malicioso'); // false, espero eu! ?
class SuperButton extends HTMLButtonElement { // Código supimpa aqui } customElements.define('super-button', SuperButton, { extends: 'button' });
Avec customElements.define() et customElements.get(), vous êtes prêt à créer un site Web plus personnalisé qu'une configuration de streamer ! N'oubliez pas : de grands pouvoirs s'accompagnent de grandes opportunités de créer des composants incroyables !
Maintenant, c'est à vous de jouer ! Allez créer vos éléments et révolutionnez le web ! Et si vous êtes pris dans un piège, respirez profondément et réfléchissez : « Que ferait Linus Torvalds ? ??
Voulez-vous approfondir ce multivers de possibilités ? Jetez un œil à la documentation officielle des éléments personnalisés sur MDN. C'est comme le grimoire des sorciers du front-end ! ?✨
Quoi de neuf, développeur ? Êtes-vous impatient de créer vos propres éléments? Partagez dans les commentaires quel élément fou vous allez créer ! Peut-être que la prochaine fois nous ferons un
Que le code soit toujours avec vous ! ????
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!