Vue компонент упаковки - PullRequest
       0

Vue компонент упаковки

0 голосов
/ 22 января 2019

Как правильно обернуть компонент другим компонентом при сохранении всех функций дочернего компонента.

мне нужно заключить компонент в контейнер, сохранив все функции дочернего элемента и добавив триггер при нажатии на контейнер вне дочернего элемента, который вызовет событие onclick дочернего элемента,

Родительский компонент должен генерировать все события дочернего компонента и принимать все реквизиты, которые принимает дочерний компонент, и передавать их, все, что делает родитель, это добавляет интерактивную оболочку, активируемую щелчком мыши.

таким образом, я спрашиваю, как расширить компонент в Vue ...

1 Ответ

0 голосов
/ 22 января 2019

Называется прозрачной оберткой.

Вот как это обычно делается:

<template>
  <div class="custom-textarea">
    <!-- Wrapped component: -->
    <textarea
      :value="value"
      v-on="listeners"
      :rows="rows"
      v-bind="attrs"
      >
    </textarea>
  </div>
</template>

<script>
export default {
  props: ['value'],  # any props you want
  inheritAttrs: false,
  computed: {
    listeners() {
      # input event has a special treatment in this example:
      const { input, ...listeners } = this.$listeners;
      return listeners;
    },
    rows() {
      return this.$attrs.rows || 3;
    },
    attrs() {
      # :rows property has a special treatment in this example:
      const { rows, ...attrs } = this.$attrs;
      return attrs;
    },
  },
  methods: {
    input(event) {
      # You can handle any events here, not just input:
      this.$emit('input', event.target.value);
    },
  }
}
</script>

Источники:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...