<div id="app">
  <div class="p-5">
    內部傳來的文字:{{ text }}<br>
    <button-text
       @emit-text="getData"
       class="mt-2"
       >
    </button-text>
  </div>
</div>
const app = Vue.createApp({
  data() {
    return {
      num: 0,
      text: ''
    };
  },
  methods: {
    getData(text) {
      console.log('getData', text);
      this.text = text;
    }
  }
});

app.component('button-text', {
  data() {
    return {
      text: '內部資料',
    }
  },
  methods: {
    emit(){
      this.$emit('emit-text',this.text)
    }
  },
  template: `<button type="button" @click="emit" >emit data</button>`
});
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