I was also wondering: after having done several tests, I arrived at a decomposed architecture with VueJS:
I initialize my tweens and subtimelines in the computed properties and mount the final timeLine to the mounted hook.
I've made a rapid and ugly sample on CodePen for those who are interested: https://codepen.io/charlene-bx/pen/ExQONzE
But being also a big console.logger, I recalled that the computed are all initialized at the creation of the component... So in a way, they are launched the first time (but the animations doesn't run... And i don't understand very well why btw). But is this really a problem? The animations are only launched once they are aligned on the timeline, so in the mounted... If anyone has any suggestions for improvements, or any other suggestions, I'd love to hear about them!