Passing an object to the data property when registering a component would cause all instances of the component to point to the same data. To solve this, we need to return data from a function.
var CustomComponent = Vue.extend({
data: function () {
return { a: 1 }
}
})