Vue控制的表单输入

I'm used to creating controlled components in react using state; however, I'm new to Vue and would like to learn how I could recreate my code from react into something Vue could use. I want the input fields values to be store in a piece of data so that I could do something with them.

// TextInput.vue
<template>
  <div class="col-md-6">
    <div class="form-group">
      <input :value="value" @input="handleChange" ... >
      <label for="name">Name <sub*</sub></label>
    </div>
  </div>
</template>

<script>
  export default {
    props: {
      value: {
        required: true,
        type: String,
      }
    },
    methods: {
      handleChange(e) {
        this.$emit('handleChange', e.target.value);
      }
    }
  }
</script>








// Form.vue

<template>
  /* ... */
  <text-input :value="value" @handleChange="handleChange($event)">
  /* ... */
</template>

<script>
  export default {
    data() {
      return {
        value: '',
      }
    },
    methods: {
      handleChange(payload) {
        this.value = payload;
      }
    }
  }
</script>