There are some cases where your component can be defined by the kind of variable you are receiving or the type of data that you have; then, you need to change the component on the fly, without the need to set a lot of Vue v-if, v-else-if, and v-else directives.
In those cases, the best thing to do is to use dynamic components, when a computed property or a function can define the component that will be used to be rendered, and the decision is taken in real time.
These decisions sometimes can be simple if there are two responses, but they can be more complex with a long switch case, where you may have a long list of possible components to be used.