Trying to detect changes in slots using useSlots together with computed did not work for me, and I had to have support for changes upon mount. Accessing $slots directly in the template worked much better and seemed to update instantly, in my case I rendered a class if a named slot was present.
<div :class=”{ ’some-class’: $slots.footer }”>