JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://unpkg.com/[email protected]/dist/vue.js"></script>
<div id="app">
  <products-list v-model="product.name"></products-list>
</div>

<template id="my-input">
  <div>
    <input @input="$emit('input',$event.target.value)" />
  </div>
</template>

JavaScript

Vue.component('products-list', {
  template: '#my-input'
});

var app = new Vue({
  el: '#app',
  data: {
    product: {
      name: "",
    }
  },
  watch: {
    'product.name': function() {
      console.log(this.product.name);
    }
  }
});