JSFiddle - React, Tailwind, and code Playground

HTML

<div id="app">

  <input
    v-for="item in items"
    v-model="item.name"
    v-input-test="item.name"
  >

</div>

Babel + JSX

function getKey(e) {
  console.log('key:', e.key);
  console.log('el:', this);
  console.log('binding.value:', this.dataset.bindingValue);
}

Vue.directive("input-test", {
  bind: function(el, binding) {
    el.dataset.bindingValue = binding.value
    el.addEventListener('keydown', getKey);
  },
  unbind: function(el, binding) {
    el.removeEventListener('keydown', getKey);
  }
});


new Vue({
  el: '#app',
  data: {
    items: [
      { name: 'Iron Man' },
      { name: 'Thor' },
      { name: 'Hulk' }
    ],
  }
});