| pageClass | rule-details |
|---|---|
| sidebarDepth | 0 |
| title | vue/require-slots-as-functions |
| description | enforce properties of `$slots` to be used as a function |
| since | v7.0.0 |
enforce properties of
$slotsto be used as a function
- ⚙️ This rule is included in all of
"plugin:vue/vue3-essential",*.configs["flat/essential"],"plugin:vue/vue3-strongly-recommended",*.configs["flat/strongly-recommended"],"plugin:vue/vue3-recommended"and*.configs["flat/recommended"].
This rule enforces the properties of $slots to be used as a function.
this.$slots.default was an array of VNode in Vue.js 2.x, but changed to a function that returns an array of VNode in Vue.js 3.x.
<script>
export default {
render(h) {
/* ✓ GOOD */
var children = this.$slots.default()
var children = this.$slots.default && this.$slots.default()
/* ✗ BAD */
var children = [...this.$slots.default]
var children = this.$slots.default.filter(test)
}
}
</script>Nothing.
This rule was introduced in eslint-plugin-vue v7.0.0