Yop.
C'est normal car @complete="completeStep" n'est pas à sa place.
Càd qu'il doit être au même niveau de la balise <presentation>. (qui se situe donc dans App.vue).
(Les envois d'événements vers les parents $dispatch/enfants $broadcast ont été retirés sur cette version; pour ça qu'entre autres, vuejs te dit que $dispatch n'est pas une fonction.)