JSFiddle - React, Tailwind, and code Playground

HTML

<div id="app">
  <button @click="loop">Button</button>
</div>

JavaScript

new Vue({
	el: '#app',
  data: () => {
  		return {
    		obj: {
        	name: 'John Doe'
        }
      }
  },
  methods: {
  	async loop() {
    	for (let i = 0; i < 5; i++) {
      	Vue.set(this.obj, 'name', 'Dohn Joe ' + i);
      }
    }
  },
  watch: {
  	obj: {
    	deep: true,
      sync: true,
      handler(newVal, oldVal) {
      	window.console.log(newVal.name + ' - ' + new Date().toLocaleString());
      }
    }
  }
});