¡todos! Soy nuevo en Vue. Aquí, encontré una pregunta con un problema de vinculación de eventos de teclado. Los códigos relacionados se muestran a continuación:
...other code... <template v-for="(item, index) in chartDataList"> <component ref="chartSelfRef" :is="item.componentShowName" :key="item.id" :showData="item" v-show="item.show" :activeElement="activeElement" @keydown.ctrl.67.native="keyboardPaste(item)" @keyup.ctrl.86.native="pasteComponent" @click.native="closeContextmenu" @contextmenu.prevent.native="openContextmenu($event, item)" @mousedown.native.stop="configChart(index)" @getRefLineParams="getRefLineParams" @delSingleText="delSingleText" > </component> </template> ...other code... Aquí quiero agregar dos detectores de eventos de teclado en <component> ; sin embargo, todos ellos no funcionan. Como el <component> es un componente personalizado, se requiere el atributo native (he intentado eliminar el atributo native , tampoco funciona); También traté de usar el detector de eventos de teclado global agregado en el ciclo de vida mounted o created , lo bueno es que se pueden activar los métodos relacionados, pero, al usar este enfoque, no puedo pasar el item del parámetro a la función pasteComponent , por lo que este enfoque es tampoco me sirve. Entonces, ¿alguien podría darme alguna sugerencia? ¡Gracias por adelantado!
Siempre puedes usarlo así en vue element
@keyup.native="keyFunction($event,item)"Y en función
keyFunction(event,item) { if(event.keyCode === 67){ this.keyboardPaste(item); } else if(event.keyCode === 86){ this.pasteComponent(); } },Esto es lo que funciona para mí en vue 2.6. Lo siento si mi respuesta no es detallada.