Слоты VueJS не работают с компонентами Stencil JS?

У меня есть приложение Vue 3 и библиотека компонентов StencilJS. Один из моих компонентов Stencil ранее использовал слот по умолчанию, и он хорошо работал с Vue. Теперь я ввел именованные слоты в свой компонент Stencil, но именованные слоты больше не работают из Vue. Я знаю, что атрибут слота устарел, поэтому я попробовал это:

      <template v-slot:body>
    //content to go inside Stencil component body slot
</template>

Однако он остается пустым, так как контент не отображается. На данный момент я использую старый способ добавления слота, добавляя отключение Eslint следующим образом:

      <!-- eslint-disable-next-line  vue/no-deprecated-slot-attribute -->
<div slot="body">
    //content to go inside Stencil component body slot
</div>

Это работает, но мне придется везде добавлять отключение. Я хочу сделать это правильно. Может кто подскажет как это сделать?

1 ответ

Что говорят об этом документы Stencil:

« Слоты, используемые в Stencil, — это слоты веб-компонентов, которые отличаются от слотов, используемых в Vue 2. К сожалению, API для обоих очень похожи, и ваш линтер, вероятно, их путает. Вам нужно будет обновить свой lint в .eslintrc.js, чтобы игнорировать это предупреждение: "

      module.exports = {
  rules: {
    'vue/no-deprecated-slot-attribute': 'off',
  },
};

См. документацию по трафарету: vue/no-deprecated-slot-attribute.

Другие вопросы по тегам