Because components can be reused, if component data is an object, the data property values in the child components can contaminate each other, causing side effects.

So a component’s data option must be a function, so each instance can maintain a separate copy of the returned object.