I'm trying to implement a game much like those created with the tool Twine. An example can be found here (no need to go past the first few pages to understand what I'm going for). Basically, it's a choose your own adventure game where a player moves between chunks of html (called passages) containing static text and interactive elements, like buttons that show more text and links to other passages.
I dislike using Twine 2 (it's frustrating and limited for experienced programmers) and thought it would be better to implement my game using a modern web framework, like Angular. However, Angular doesn't appear to allow you to dynamically load html containing Angular components -- see How to dynamically add innerHTML with angular 2 components -- you have to explicitly load the components themselves.
If I wanted dynamically loaded passages to contain angular components, would I have to write a separate component for each passage? Are there any performance/maintenance issues with this?