I got a question in AD0-E116 exam regarding SPA with AEM. Question was how two SPA components with communication with each other being on the same SPA page. Options were like using sling models or javasript code. I dont remember the exact options.
rather than someone explaining you, you can try creating a SPA project and check how model.json and componentExporter works here with different annotations.