JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://unpkg.com/vue@2.4.4/dist/vue.js"></script>
<div id="app"></div>

JavaScript

Vue.component('child', {
	props: ['prods'],
  watch: {
  	prods: {
    	handler: function(new_val, old_val) {
      	alert('watched');
      },
      deep: true
    }
  },
})

new Vue({
  el: '#app',
  template: '<div>{{products[0].value}}<br><child v-bind:prods="products"></child><button v-on:click="incre">Dados do produto</button></div>',
  data: {
  	products: [
    	{id: 1, name: 'prod1', value: 20},
      {id: 2, name: 'prod2', value: 40},
    ],
  },
  methods: {
    incre: function() {
      this.products[0].value += 20;
    }
  }
})