MainMenu component from the MenuItem by passing props.children . The MainMenu component is then responsible for showing each child component with the relevant MenuItem becomes active (is clicked), like this: {menuItems()[activeMenuItem()].children}, where menuItems is a signal containing an array of menu items and activeMenuItem is a signal containing the index of the currently active menu item. It works pretty well.MainMenu actually shows it, and they are mounted only once. Ideally, I would like child components to the mounted each time it is shown by the MainMenu, and unmounted when they are not shown - so basically, each time the activeMenuItem signal changes and thus {menuItems()[activeMenuItem()].children} is called again.