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;
}
}
})