Pass array of items to children as prop with Icon component? It's impossible?

Hello. Can I send an array of items to children with my Icon component?

<template>
  <menu :items="items" />
</template>

<script>
import Menu from './Menu.vue';
import Icon from './Icon.vue';

export default {
  name: 'Test',
  components: {
    Icon,
    Menu,
  },
  data() {
    return [{
      title: 'about',
      iconComponent: Icon,
    }]
  }
}
</script>

I know that I can pass the name of the component as string and then import all the components in the Menu component and use <component: is />
But I need to not have to describe all the components in the Menu.
How can I do it? In React, I can do this:

[{
  title: 'about',
  renderIcon: () => <Icon />,
}]

it is also possible to pass a component definition instead of component name like <component :is="foo" /> - assuming that there is this.foo that is like {template:"<div>foo? - its' me</div>" }
but do not place component definition directly in the data - it’s may be buggy and overhead, use computed to glue items-data with Icon-component definition like itemsWithIcons(){ return items.map(...)} and pass it to menu as props
So somewhere in menu you can just <component :is="item.icon || defaultIcon" /> -
assuming v-for = "item in itemsWithIconsProp"
And since you directly pass component definition to component-is you don’t have to register it as components:{...}

update
instead of using computed you can data(){return [{title:'...', icon()=>Icon}] - exactly as in React.
Replacing Icon with icon()=>Icon prevents Icon from being reactive, so it is safe approach