для чего используются атрибуты inheritAttrs: false и $ attrs? - PullRequest
1 голос
/ 20 мая 2019

Как показывает вопрос, я не могу понять их значение и почему я должен его использовать.Говорят, что его можно использовать для того, чтобы, когда у нас было много компонентов и мы хотели передать данные из parent в дочерний компонент child-child, нам не нужно использовать реквизит.Это правда?

Было бы неплохо, если бы вы могли привести более простой пример.В документах Vue.js особо не упоминается.

1 Ответ

1 голос
/ 20 мая 2019

Взгляните на раздел "Отключение наследования атрибутов" документации и описание API для получения полной информации.

Его основное использование - определитьтак называемые «прозрачные» компоненты, которые передают атрибуты.Пример, приведенный в документе, представляет собой компонент, заключающий в себе элемент input:

// Component
Vue.component('base-input', {
  inheritAttrs: false,
  props: ['label', 'value'],
  template: `
    <label>
      {{ label }}
      <input
        v-bind="$attrs"
        v-bind:value="value"
        v-on:input="$emit('input', $event.target.value)"
      >
    </label>
  `
})

// Usage
<base-input
  v-model="username"
  required
  placeholder="Enter your username"
/>

Атрибуты required и placeholder затем устанавливаются в input вместо переноса label.

Это на самом деле не имеет ничего общего с дочерними элементами дочерних компонентов, но его можно использовать в такой иерархии.

Я надеюсь, что это прояснит для вас.

...