Вы можете установить обработчик keyup
для всей страницы.
Если вы хотите отменить / повторить данные вне ввода, я думаю, что вам нужно где-то сохранить каждое изменение, а затем отменить / повторить его в обработчике keyup
.
<div>{{ output }}</div>
data () {
return {
changes: [],
output: ''
}
},
mounted () {
document.addEventListener('keyup', this.keyupHandler)
},
destroyed () {
document.removeEventListener('keyup', this.keyupHandler)
},
methods: {
logChange (string) {
this.changes.push(string)
}
keyupHandler (event) {
if (event.ctrlKey && event.code === 'KeyZ') {
this.undoHandler()
}
else if (event.ctrlKey && event.code === 'KeyY') {
this.redoHandler()
}
},
undoHandler () {
// Get the data from "this.changes" and set the output
this.output = ...
},
redoHandler () {
// Get the data from "this.changes" and set the output
this.output = ...
}
}