JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.3/vue.js"></script>
<div id="app">
<button @click="load">load</button>
<input v-model="name">
<button :disabled="!name_changed" @click="name_changed = false">save</button>
</div>
JavaScript
new Vue({
el: '#app',
data: {
name: '',
name_changed: false,
},
mounted() {
this.load();
},
methods: {
load() {
if (this.unwatch) {
this.unwatch();
this.unwatch = null;
}
setTimeout(() => {
this.name = Math.random() * 10000 | 0;
this.name_changed = false;
this.unwatch = this.$watch('name', () => this.name_changed = true);
}, 500);
},
},
});