在vue中 data是一个对象 或是一个方法的区别

首先说 data在不同状态下到底是对象或function

  1. 在一个普通的vue实例中 data是一个对象 ,
new Vue( { data : { title : ''object"} } );

  1. 在一个普通的vue实例中 data是一个function ,
Vue.component( 'component-name', Vue.extend( {data : function() {return {title : 'abc'}; } } ) );

为仕么要在组件中写成function
组件被定义,data 必须声明为返回一个初始数据对象的函数,因为组件可能被用来创建多个实例。如果 data 仍然是一个纯粹的对象,则所有的实例将共享引用同一个数据对象!通过提供 data 函数,每次创建一个新实例后,我们能够调用 data 函数,从而返回初始数据的一个全新副本数据对象。(也就是说写成函数,会有函数作用域的概念 ,是私有函数,只作用到当前组件中)
【在vue中 data是一个对象 或是一个方法的区别】参考自 https://cn.vuejs.org/v2/api/?#data

    推荐阅读