Задать вопрос
@kokospro

Как в компоненте VueJs отключить наследование атрибутов?

К компонентее VueJS указываю inheritAttrs: false.
Но классы все равно прописваются в корневой элемент.

что я делаю не так?
<template>
  <div class="ui-input">
    <div v-if="label" class="ui-input__label">{{ label }}</div>
    <input class="ui-input__field"  v-on="$listeners" v-bind="$attrs" v-bind:value="value" v-on:input="$emit('input', $event.target.value)">
  </div>
</template>

<script>
  export default{
    name: 'ui-input',
   props:....
    inheritAttrs: false
  }
</script>

Использую
<ui-input type="text"  class="form-control form-control-lg" label="Секретный ключ"></ui-input>
  • Вопрос задан
  • 622 просмотра
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Frontend-разработчик
    9 месяцев
    Далее
  • Loftschool
    Профессия Веб-разработчик
    7 месяцев
    Далее
  • Avenue
    Javascript. Frontend
    5 месяцев
    Далее
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
указываю inheritAttrs: false <...> классы все равно прописваются в корневой элемент

Относительно inheritAttrs документация говорит, что

this option does not affect class and style bindings

Так что отключить не получится. Но можно сделать компонент функциональным (например) - у них атрибуты автоматически не назначаются корневому элементу.

UPD. Срочно переезжаем на vue 3, там поведение inheritAttrs поправили.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы