Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

134
Visualizações
¿Es una buena práctica crear atributos HTML personalizados para elementos personalizados?

Al crear un elemento personalizado como <input-field> , ¿deberían los atributos personalizados seguir usando el prefijo 'data-' o sería aceptable simplemente usarlos tal cual? Básicamente usando variation="abc" vs data-variation="abc" por ejemplo.
Y si está permitido, ¿se permitiría reutilizar atributos existentes como el type ?

Además, sería una mala práctica agregar propiedades personalizadas al objeto del elemento durante la creación como las siguientes:

 class InputFieldElement extends HTMLElement { constructor() { super(); this.customProperty = {data: 123}; } } customElements.define('input-field', InputFieldElement);

Soy consciente de que estos métodos funcionan perfectamente bien en este momento, pero la pregunta es más si es realmente un comportamiento previsto o si es solo un caso extraño que podría dejar de funcionar en cualquier momento.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Hice una pregunta similar hace más de 3 años.

Puede elegir casi cualquier nombre de atributo que desee, excepto los atributos universales (por ejemplo, id , class , title ). En algunos casos, incluso reutilizar nombres de atributos que existen en algunos elementos (como, por ejemplo, value , disabled , etc.) tiene mucho sentido para que los consumidores de componentes puedan trabajar con sus elementos como si fueran elementos HTML existentes.

¡Recuerde que esta libertad solo se aplica cuando se usan elementos personalizados autónomos ( <foo-bar> ), no cuando se amplían elementos integrados ( <div is="foo-bar"> )!

En cuanto a su segunda pregunta, también está bien definir/agregar propiedades en el constructor, pero las adiciones recientes al estándar ES han agregado campos de clase públicos y privados:

 class InputFieldElement extends HTMLElement { customProp = {data: 123}; // public class field #abc = "Hello"; // only accessible from within this class via this.#abc }

Excepto el miembro privado, esta clase hace exactamente lo mismo que hizo su clase, ahorrándole efectivamente la necesidad de un constructor . Tenga en cuenta que this aún no está disponible cuando se asignan valores a campos de clase privados o públicos, lo que significa que no puede configurar las propiedades calculadas de esta manera.

Con respecto a su pregunta específica que solicita type , tener ese atributo generalmente es un indicador de un diseño de clase incorrecto (lo cual es cierto para HTMLInputElement , por ejemplo, resulta en entradas de text con una propiedad checked sin uso y sin sentido, y casillas de verificación que tienen una propiedad readOnly (que ganó 't hacer nada tampoco)), pero ya no se puede cambiar debido a la compatibilidad web.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda