javascript - Bagaimanakah vue mengkonfigurasi jenis acara yang didengarinya?
仅有的幸福
仅有的幸福 2017-06-12 09:32:45
0
2
594
Vue.component('button-counter', {
  template: '<button v-on:click="increment()">{{ counter }}</button>',
  data: function () {
    return {
      counter: 0
    }
  },
  methods: {
    increment: function () {
      this.counter += 1
    }
  },
})

Sebagai contoh, dalam komponen di atas, saya berharap acara yang didengari oleh v-on diluluskan oleh komponen induk, bukannya menulisnya sebagai klik di sini.

Mestilah tahu guna props untuk hantaran, nak tahu tulis v-on nanti. Jika anda menulis propname terus, Vue akan berfikir bahawa acara yang akan dipantau ialah nama prop, bukan acara khusus.

仅有的幸福
仅有的幸福

membalas semua(2)
洪涛

Penyoal mempunyai keperluan khas Jika ya, anda mungkin perlu menggunakan render代替template:

<p id="app">
  <button-counter :event="'click'">abc</button-counter>
</p>
const counter = Vue.component('button-counter', {
  render(createElement) {
    return createElement(
      'button', {
        on: {
          [this.event]: this.increment,
        },
      },
      `${this.counter}`,
    )
  },
  data() {
    return {
      counter: 0,
    }
  },
  props: {
    event: String
  },
  methods: {
    increment() {
      this.counter += 1
    },
  },
})

new Vue({
  el: '#app',
  components: {
    'button-counter': counter,
  },
})
黄舟

Komponen induk menghantar parameter kepada subkomponen melalui props boleh menjadi fungsi, jadi anda boleh menghantar fungsi kepada subkomponen

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan