Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

359
Views
¿Qué hace {on, attrs} en vue/vuetify?

Soy consciente de que esta pregunta ya se ha hecho, pero todavía me cuesta entender qué significa.

 <v-dialog v-model="dialog" width="500" > <template v-slot:activator="{ on, attrs }"> <v-btn color="red lighten-2" dark v-bind="attrs" v-on="on" > Click Me </v-btn> </template>

(que se toma de la documentación oficial de vuetify https://vuetifyjs.com/en/components/dialogs/#usage , pero sospecho que solo hay una cosa de JS que no entiendo).

¿Qué significa {on, attrs} y cómo se propagan hasta v-btn donde se usan en v-on y v-bind ?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Hay algunos conceptos aquí que necesitan ser explicados.

Las "ranuras con alcance" (o simplemente "ranuras" desde Vue 3) pueden pasar datos al componente principal. Piense en la ranura como una especie de función con argumentos. En este caso, el espacio activator de <v-dialog> pasa un objeto que contiene propiedades y attrs on usar dentro de la plantilla de contenido del espacio. Debe consultar los documentos de <v-dialog> para saber cómo se deben usar estos datos; en este caso, <v-dialog> necesita saber cuándo se hace clic en el activador para presentar el diálogo, por lo que expone on y attrs que necesita vincular a cualquier botón personalizado que designe como activador de diálogo.

En muchas bibliotecas de componentes, es común que las ranuras se expongan (escuchas on eventos) y attrs (atributos/accesorios) que el componente requiere que establezca en un componente de la plantilla; para esto usas v-on y v-bind respectivamente. Consulte los documentos para ver cómo se pueden usar estas directivas de esta manera para vincular múltiples atributos a la vez:

 <!-- binding an object of attributes --> <div v-bind="{ id: someProp, 'other-attr': otherProp }"></div>

Esta sintaxis específica ( destrucción de objetos ):

 <template v-slot:activator="{ on, attrs }"> <v-btn v-bind="attrs" v-on="on">

es lo mismo que esto:

 <template v-slot:activator="scope"> <v-btn v-bind="scope.attrs" v-on="scope.on">

Las propiedades on y attrs simplemente se extraen en variables separadas.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!