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">
  <div v-for="(v, k) in values">
    <button @click="load(k)">load</button>
    <input v-model="values[k]" @input="onInput(k)">
    <button :disabled="!changed[k]" @click="save(k)">save</button>
  </div>
</div>

JavaScript

new Vue({
  el: '#app',
  data: {
    values: {
      name1: '',
      name2: '',
      name3: '',
    },
    changed: {
      name1: false,
      name2: false,
      name3: false,
    },
  },
  mounted() {
    Object.keys(this.values).forEach(this.load);
  },
  methods: {
    load(key) {
      setTimeout(() => {
        this.values[key] = Math.random() * 10000 | 0;
        this.changed[key] = false;
      }, 400);
    },
    save(key) {
      this.changed[key] = false;
    },
    onInput(key) {
      this.changed[key] = true;
    },
  },
});