La propiedad de datos VUE JS en el componente debe ser una función

So, the reason why Vue forces the data property to be a function is that each instance of a component should have its own data object. If we don't do that, all instances will be sharing the same object and every time we change something, it will be reflected in all instances.
Unusual Unicorn