原因 在开发可重用组件的时候Vue的data作为函数return其他的对象。 将data作为对象将导致全局变量污染,即一个组件修改data后另一个组件的data也被修改。 而将data设定成返回对象的函数时,每个实例可以维护被返回对象的独立拷贝。即每次都会有新的对象生成,即内存栈中的引用地址不一样,也就不会有全局变量污染。 举个例子 //当data作为对象时 data{ count:0 } //当data作为返回对象的函数时 data = function(){ return { x : 0 } }