Always named vanilla module files as mjs to mark the difference for integrators (mjs indicate that ype="module" should be used)
Idnetify a way to share state between parents and child elements - events is the more convenient way
https://vuejs.org/v2/guide/components-props.html
https://012.vuejs.org/guide/components.html#Prop_Specification
Limits : Reflected attributes to props is considered as an anti pattern : https://vuejs.org/v2/guide/migration.html#Prop-Mutation-deprecated
Events should be documented clearly