Skip to content

useSlotNameResolver ​

Overview ​

Helper to resolve the most specific slot name from a list of candidates in order of precedence.

Signature ​

useSlotNameResolver(slotNamesInOrderOfPrecedence, slots)

Parameters ​

NameTypeRequiredDescription
slotNamesInOrderOfPrecedenceSlotNamesInOrderOfPrecedenceyesThe slot names to check for, in order of precedence.
slotsobjectnoThe slots object to check against. If not provided, the current instance's slots will be used.

Returns ​

- The resolved slot name.

Examples ​

vue
<script setup>
import { useSlotNameResolver } from '@vueda/use/useSlotNameResolver.js';

// some reactive/dynamic logic
const myFieldName = computed(() => 'myField');
const mySlotsNames = computed(() => ([
  `field(${unref(myFieldName)})mySlot`, `field-mySlot`, 'mySlot'
]));
const mySlot = useSlotNameResolver(mySlotsNames);
</script>
<template>
    ...
    <!-- translate outside slot names to mySlot -->
    <some-sub-component>
      <template name="mySlot">
        <slot v-if="mySlot.exists" :name="mySlot.name" />
      </template>
    </some-sub-component>
    ...
</template>

Source ​

client/lib/use/useSlotNameResolver.js:58