Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

268
Vistas
La propiedad del componente web Vue no se configura a través del atributo html

Tengo un componente web vue con un accesorio numérico y, a través de algunas pruebas, descubrí que hacer algo como esto no funciona para establecer el valor del accesorio...

 <script src="https://unpkg.com/vue@2"></script> <script src="./mycomponents.js"></script> <my-component myProp="40"></my-component>

Pero esto será...

 <script src="https://unpkg.com/vue@2"></script> <script src="./mycomponents.js"></script> <my-component id="mycmp"></my-component> <script type="module"> const myComponent = document.getElementById("mycmp"); myComponent.myProp = 40; </script>

Ejemplo de código de componente:

 <template> <p>{{myProp}}</p> </template> <script> export default { name: 'MyComponent', props: { myProp: { type: Number, default: 0 } } } </script>

Supongo que tal vez esto sea una cuestión de tiempo, como cuando se hace a través de los atributos html, ¿el componente aún no ha terminado de inicializarse correctamente? Aunque todos los ejemplos que vi de otras personas que usan componentes web vue parecían sugerir que este debería ser un caso de uso bastante básico. Con suerte, solo soy yo haciendo algo tonto.

Cualquier ayuda muy apreciada!

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Los atributos de HTML a menudo no coinciden 1 a 1 con las propiedades de JavaScript. En este escenario, el atributo HTML de la traducción de propiedades de Vue.js es similar al de los atributos data-* .

Conversión de nombre

conversión dash-style a camelCase

Un nombre de atributo de datos personalizado se transforma en una clave para la entrada DOMStringMap de la siguiente manera:

  1. Poner en minúsculas todas las letras mayúsculas ASCII ( A a Z );
  2. Eliminar el prefijo data- (incluido el guión);
  3. Para cualquier guión ( U+002D ) seguido de una letra minúscula ASCII de a a la z , elimine el guión y escriba la letra en mayúsculas;
  4. Otros caracteres (incluidos otros guiones) no se modifican.

conversión de camelCase a dash-style

La transformación opuesta, que asigna una clave a un nombre de atributo, utiliza lo siguiente:

  1. Restricción: antes de la transformación, un guión no debe ir seguido inmediatamente de una letra minúscula ASCII de a a la z ;
  2. Agregue el prefijo de data- ;
  3. Agregue un guión antes de cualquier letra mayúscula ASCII de la A a la Z , luego escriba la letra en minúsculas;
  4. Otros caracteres se dejan sin cambios.

Por ejemplo, un atributo data-abc-def corresponde a dataset.abcDef .

Aplicando esto a su escenario, podemos omitir el paso 2 (la parte de data- ) y escribir el atributo así:

 <my-component my-prop="40"></my-component>
about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede intentar establecer el setAttribute para convertirlo en cadena:

 <my-component></my-component> <script type="module"> const myComp= document.querySelector("my-component"); myComp.setAttribute("my-prop", JSON.stringify(40)); </script>

luego, en su componente, reciba prop como cadena y conviértalo en número (o si necesita el objeto JSON. Analícelo):

 <template> <p>{{ myPropNr }}</p> </template> props: { myProp: { type: String, default: 0 } }, computed: { myPropNr() { return Number(this.myProp) } }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda