<div id="app">
  <div class="p-5">
    <h2>將元件內的值傳回 v-model(update:modelValue)</h2>
    {{ name }}
    <custom-input
      v-model:text="name"
    >
    </custom-input>
  </div>
</div>
const app = Vue.createApp({
  data() {
    return {
      name: '小明',
    }
  }
});
// $emit('update:text', $event.target.value) 搭配 props,可以將更新後的值寫回 v-model 內
app.component('custom-input', {
  props: ['text'],
  template: `<input type="text"
  :value="text"
  @input="$emit('update:text',$event.target.value)"
  class="form-control">`
});
app.mount('#app');
Run Pen

External CSS

  1. https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.0.2/css/bootstrap.min.css

External JavaScript

  1. https://cdnjs.cloudflare.com/ajax/libs/vue/3.2.37/vue.global.prod.min.js