Skip to content

noVueDeprecatedVIs (HTML)

Language HTML
biome.json
{
"linter": {
"rules": {
"nursery": {
"noVueDeprecatedVIs": "error"
}
}
}
}

Disallow the deprecated Vue v-is directive.

The v-is directive renders a component in place of a native HTML element. It is deprecated since Vue 3.1.

Use the is attribute with a vue: prefix instead, for example is="vue:MyComponent". Unlike v-is, the value of is is plain text, so the component name doesn’t need extra quotes.

<template>
<div v-is="'MyComponent'"></div>
</template>
code-block.vue:2:8 lint/nursery/noVueDeprecatedVIs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

⚠ The v-is directive is deprecated.

1 │ <template>
> 2 │ <div v-is="'MyComponent'"></div>
│ ^^^^^^^^^^^^^^^^^^^^
3 │ </template>
4 │

ℹ v-is is deprecated since Vue 3.1 and may be removed in a future version.

ℹ Use the is attribute with a vue: prefix instead, like is="vue:MyComponent".

ℹ This rule belongs to the nursery group, which means it is not yet stable and may change in the future. Visit https://biomejs.dev/linter/#nursery for more information.

<template>
<div is="vue:MyComponent"></div>
<component is="MyComponent"></component>
</template>