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

266
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 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